From: Gianfranco Costamagna Date: Thu, 6 Mar 2025 11:46:53 +0000 (+0100) Subject: Import git-annex_10.20241202-2.debian.tar.xz X-Git-Tag: archive/raspbian/10.20250416-2+rpi1~1^2~7^2^2~1^2 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi//%22https:/bugzilla.%22/%22http:/www.example.com/cgi/%22https:/bugzilla.%22?a=commitdiff_plain;h=94bd563edfbddb6d06ebb731c1a54ddc9dd13816;p=git-annex.git Import git-annex_10.20241202-2.debian.tar.xz [dgit import tarball git-annex 10.20241202-2 git-annex_10.20241202-2.debian.tar.xz] --- 94bd563edfbddb6d06ebb731c1a54ddc9dd13816 diff --git a/NEWS b/NEWS new file mode 120000 index 0000000000..0fae0f8020 --- /dev/null +++ b/NEWS @@ -0,0 +1 @@ +../NEWS \ No newline at end of file diff --git a/changelog b/changelog new file mode 100644 index 0000000000..5cdaba7397 --- /dev/null +++ b/changelog @@ -0,0 +1,6276 @@ +git-annex (10.20241202-2) unstable; urgency=medium + + * Team upload. + + [ Dandan Zhang ] + * Add build-depends for loong64 (Closes: #1060833). + + -- Gianfranco Costamagna Thu, 06 Mar 2025 12:46:53 +0100 + +git-annex (10.20241202-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Fri, 06 Dec 2024 11:34:27 +0800 + +git-annex (10.20241031-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Fri, 08 Nov 2024 10:45:27 +0800 + +git-annex (10.20240927-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Thu, 17 Oct 2024 11:15:11 +0800 + +git-annex (10.20240430-1) unstable; urgency=medium + + * New upstream release. + * Add libghc-unbounded-delays-dev build-dep. + + -- Sean Whitton Wed, 29 May 2024 10:59:06 +0100 + +git-annex (10.20240129-1) unstable; urgency=medium + + * New upstream release (Closes: #1064253). + * Update build-dep libghc-cryptonite-dev -> libghc-crypton-dev. + + -- Sean Whitton Tue, 27 Feb 2024 14:39:55 +0800 + +git-annex (10.20230802-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Mon, 21 Aug 2023 07:58:59 +0100 + +git-annex (10.20230626-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Fri, 14 Jul 2023 20:58:54 +0100 + +git-annex (10.20230407-2) unstable; urgency=medium + + * Further fixes for Ubuntu (Closes: #1038265): + - Add riscv64 to list of archs for webapp build-deps + - Disable LTO on ppc64el. + + -- Sean Whitton Sun, 18 Jun 2023 09:14:21 +0100 + +git-annex (10.20230407-1) unstable; urgency=medium + + * New upstream release. + * Weaken dependency on libghc-yesod-core-dev to require only 1.2.19. + * Strip -Wl,-Bsymbolic-functions from LDFLAGS on Ubuntu (Closes: #1037532). + Thanks to Sergio Durigan Junior for the patch. + + -- Sean Whitton Wed, 14 Jun 2023 11:49:40 +0100 + +git-annex (10.20230126-3) unstable; urgency=medium + + * Backport fixes for data loss bug (Closes: #1033627). + Thanks to Joey Hess for the report and patches. + + -- Sean Whitton Sat, 01 Apr 2023 10:57:41 -0700 + +git-annex (10.20230126-2) unstable; urgency=medium + + * Add m68k to list of archs for webapp build-deps (Closes: #1031647). + + -- Sean Whitton Fri, 24 Feb 2023 13:36:59 -0700 + +git-annex (10.20230126-1) unstable; urgency=medium + + * New upstream release (Closes: #1030317). + - Drop version trstriction on libghc-cryptonite-dev build-dep. + + -- Sean Whitton Mon, 13 Feb 2023 11:07:12 -0700 + +git-annex (10.20221003-3) unstable; urgency=medium + + * Cherry-pick upstream commits 5256be61c1 and 43f681d4c1 (Closes: #1024226). + This includes replacing Suggests: youtube-dl with Suggests: yt-dlp. + Thanks to Joey Hess for the patches. + + -- Sean Whitton Mon, 21 Nov 2022 16:29:06 -0700 + +git-annex (10.20221003-2) unstable; urgency=medium + + * Drop obsolete build-dep on libghc-pcre-light-dev. + Thanks to Ilias Tsitsimpis for pointing this out, on IRC. + + -- Sean Whitton Thu, 06 Oct 2022 18:40:55 -0700 + +git-annex (10.20221003-1) unstable; urgency=medium + + * New upstream release (Closes: #1021206). + + -- Sean Whitton Tue, 04 Oct 2022 20:00:50 -0700 + +git-annex (10.20220724-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Sun, 21 Aug 2022 15:06:39 -0700 + +git-annex (10.20220504-1) unstable; urgency=medium + + * New upstream release (Closes: #1010397). + * Drop version restriction on libghc-http-conduit-dev build-dep. + * Loosen version restriction on libghc-optparse-applicative-dev build-dep. + * Add build-dep on libghc-ansi-terminal-dev. + + -- Sean Whitton Sun, 08 May 2022 14:43:05 -0700 + +git-annex (8.20211123-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Mon, 29 Nov 2021 12:38:57 -0700 + +git-annex (8.20211011-2) unstable; urgency=medium + + * New upstream release (Closes: #994697). + + -- Sean Whitton Mon, 18 Oct 2021 15:09:52 -0700 + +git-annex (8.20210903-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Mon, 06 Sep 2021 11:32:49 -0700 + +git-annex (8.20210803-1) unstable; urgency=medium + + * New upstream release. + * Drop patch to Git/Tree.hs from previous upload. + Applied upstream. + + -- Sean Whitton Mon, 16 Aug 2021 13:17:20 -0700 + +git-annex (8.20210223-2) unstable; urgency=medium + + * Apply backported patch to fix special remote import bug (Closes: #986947). + Thanks to Joey Hess for the fix and for making me aware of the problem. + + -- Sean Whitton Wed, 14 Apr 2021 10:05:22 -0700 + +git-annex (8.20210223-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Sun, 28 Feb 2021 12:49:05 -0700 + +git-annex (8.20201127-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Sun, 27 Dec 2020 15:09:49 -0700 + +git-annex (8.20201103-1) unstable; urgency=medium + + * Drop spurious slash from the end of Vcs-Git. + * New upstream release. + + -- Sean Whitton Sat, 07 Nov 2020 13:08:22 -0700 + +git-annex (8.20201007-1) unstable; urgency=medium + + * New upstream release. + * Add build-dep on libghc-criterion-dev. + * Raise debhelper compat to 13, and move debian/compat->debian/control. + + -- Sean Whitton Mon, 26 Oct 2020 15:29:31 -0700 + +git-annex (8.20200908-1) unstable; urgency=medium + + * New upstream release (Closes: #969908). + * Add deps on http-client-restricted and git-lfs Haskell libs. + + -- Sean Whitton Sun, 13 Sep 2020 20:27:50 -0700 + +git-annex (8.20200330-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Mon, 30 Mar 2020 20:26:25 -0700 + +git-annex (8.20200309-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Mon, 09 Mar 2020 15:12:22 -0700 + +git-annex (8.20200226-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Wed, 26 Feb 2020 22:03:39 -0700 + +git-annex (7.20200219-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Fri, 21 Feb 2020 07:26:47 -0700 + +git-annex (7.20191230-1) unstable; urgency=medium + + * New upstream release. + * Add libghc-filepath-bytestring-dev build-dep. + * Require git >=1:2.22. + * d/copyright updates: + - Add stanza for Utility/Attoparsec.hs + - Drop stanza for Annex/DirHashes.hs + The file header was mistakenly updated to say "GPL" in upstream + commit f845636e30728c5c45c0559e7059aa51c188bfd6. + - Merge `License: GPL-2` stanza into `License: Expat or GPL-2` stanza. + + -- Sean Whitton Thu, 02 Jan 2020 20:13:14 +0000 + +git-annex (7.20191114-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Mon, 18 Nov 2019 16:04:46 -0700 + +git-annex (7.20191024-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Mon, 28 Oct 2019 22:28:45 -0700 + +git-annex (7.20191017-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Fri, 18 Oct 2019 08:50:20 -0700 + +git-annex (7.20191009-1) unstable; urgency=medium + + * New upstream release. + * Add libghc-unliftio-core-dev build-dep. + + -- Sean Whitton Sat, 12 Oct 2019 14:59:58 -0700 + +git-annex (7.20190912-1) unstable; urgency=medium + + * New upstream release. + - Update build-dep bounds. + * Fix COPYRIGHT for Annex/DirHashes.hs. + File header indicates GPL, not AGPL. + * Try dropping patch introduced in 7.20181211-2 upload now that v7 repos + are the default. + + -- Sean Whitton Sat, 28 Sep 2019 10:53:03 -0700 + +git-annex (7.20190129-3) unstable; urgency=medium + + * Resolve a race in test cleanup by making second attempt more forceful + (Closes: #924800). + + -- Sean Whitton Sun, 31 Mar 2019 12:34:02 -0700 + +git-annex (7.20190129-2) unstable; urgency=medium + + * Cherry pick upstream commit a64fca92f6dfea086b7b9e65a2b83fb50fee1ecf. + The most recent upload failed to build on mips; this should prevent + that failure. + + -- Sean Whitton Sun, 03 Feb 2019 15:54:29 -0700 + +git-annex (7.20190129-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Tue, 29 Jan 2019 14:26:52 -0700 + +git-annex (7.20190122-2) unstable; urgency=medium + + * Add 'flaky' restriction to d/tests/control (Closes: #920549). + Thanks to Paul Gevers for the suggestion. + + -- Sean Whitton Sat, 26 Jan 2019 21:30:24 -0700 + +git-annex (7.20190122-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Tue, 22 Jan 2019 11:24:41 -0700 + +git-annex (7.20181211-2) unstable; urgency=medium + + * Disable some flaky tests. + See https://git-annex.branchable.com/todo/test_suite_failures_since_7.20181121/ + + -- Sean Whitton Tue, 18 Dec 2018 21:54:07 +0000 + +git-annex (7.20181211-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Wed, 12 Dec 2018 14:00:11 -0700 + +git-annex (7.20181205-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Wed, 05 Dec 2018 14:52:08 -0700 + +git-annex (7.20181121-2) unstable; urgency=medium + + * Drop build-dep on haskell-stm. + * Build-dep on ghc (>= 8.4.3), with which haskell-stm is now bundled. + + -- Sean Whitton Tue, 04 Dec 2018 21:25:28 -0700 + +git-annex (7.20181121-1) unstable; urgency=medium + + * New upstream release. + * In d/rules, set DEB_HOST_ARCH using the ?= assignment operator. + See description of Lintian tag debian-rules-sets-dpkg-architecture-variable. + * Add Lintian overrides: + - debian-copyright-is-symlink + - debian-news-entry-has-unknown-version 7.20181031. + * Move and trim text under "License: Expat or GPL-2" to its own + "License: GPL-2" stanza to avoid duplicate license definitions in + COPYRIGHT. + * Declare compliance with Debian Policy 4.2.1. + Unfortunately, however, the package does not yet build reproducibly. + + -- Sean Whitton Wed, 21 Nov 2018 20:38:10 -0700 + +git-annex (7.20181105-1) unstable; urgency=medium + + * New upstream release (Closes: #909023, #909435). + * Demote youtube-dl from Recommends to Suggests (Closes: #909434). + + -- Sean Whitton Mon, 05 Nov 2018 13:01:08 -0700 + +git-annex (6.20180913-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Thu, 13 Sep 2018 16:55:07 -0700 + +git-annex (6.20180807-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Fri, 10 Aug 2018 13:50:53 +0100 + +git-annex (6.20180719-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Sun, 22 Jul 2018 13:20:48 +0800 + +git-annex (6.20180626-2) unstable; urgency=high + + * Drop debian/cabal-wrapper, which should no longer be needed + (Closes: #902499). + Thanks Ilias Tsitsimpis for noticing that the wrapper is no longer + needed. + * urgency=high because CVE fixes have not yet migrated to testing users. + + -- Sean Whitton Thu, 28 Jun 2018 13:13:16 +0100 + +git-annex (6.20180626-1) unstable; urgency=high + + * New upstream release. + - Fixes CVE-2018-10857 + - Fixes CVE-2018-10859 + See upstream CHANGELOG and NEWS for full details. + * Patch COPYRIGHT to refer to the MIT license by 'Expat'. + + -- Sean Whitton Tue, 26 Jun 2018 16:54:59 +0100 + +git-annex (6.20180509-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton Wed, 09 May 2018 16:42:22 -0700 + +git-annex (6.20180427-1) unstable; urgency=medium + + * New upstream release. + - Drop 'wget' from Depends. + - Add 'adb' to Suggests. + + -- Sean Whitton Sat, 28 Apr 2018 22:29:24 -0700 + +git-annex (6.20180316-1) unstable; urgency=medium + + * New upstream release. + * Stop passing -optlo-O2 to ghc on arm{hf,el} in d/rules. + Upstream's git-annex.cabal now handles this. We still have to pass + -O1 -- see upstream commit bc1d56bdfd0f513e96c35059d9c32a1bba1539fd. + + -- Sean Whitton Tue, 20 Mar 2018 20:24:21 -0700 + +git-annex (6.20180227-1) unstable; urgency=medium + + * New upstream release. + - Drop chrpath build-dep + - Add gnupg build-dep + - Add libghc-vector-dev build-dep + - Fix upstream's "Breaks: datalad ..." to use '<<' not '<' relation. + * Patch upstream's OPTIONS_GHC line out of Test.hs. + + That line is not sufficient to prevent the package build running out + of memory on arm{el,hf} hosts. This seems to be because ghc memory + leaks while compiling the files that come before Test.hs. By the time + it reaches Test.hs, it will run out of memory no matter how low the + optimisation of Test.hs is set. + + By contrast, reducing the optimisation of the whole build on + arm{hf,el}, as introduced in the previous upload, is sufficient to + avoid the memory leak breaking the build. Upstream's OPTIONS_GHC line + clashes with that, so patch out upstream's OPTIONS_GHC line and rely + on passing options to cabal-wrapper in d/rules. + + * Source package configuration for dgit-maint-merge(7) + - add d/source/options + - add d/source/patch-header. + + -- Sean Whitton Sun, 04 Mar 2018 14:23:47 -0700 + +git-annex (6.20180112-2) unstable; urgency=medium + + * Pass --ghc-option=-O1 --ghc-option=-optlo-O2 to cabal-wrapper on armhf + and armel. This avoids the build failing due to running out of memory. + Thanks to Adrian Bunk for help finding the fix. + * Add quvi->youtube-dl change to changelog for 6.20180112-1. + Thanks Axel Beckert for noticing the error. + + -- Sean Whitton Fri, 16 Feb 2018 22:06:55 -0700 + +git-annex (6.20180112-1) unstable; urgency=medium + + * New upstream release. + - Update Recommends: quvi -> Recommends: youtube-dl. + * Adopt package into Debian Haskell Group team maintainership. + - Move Richard Hartmann to Uploaders. + - Add myself as an uploader. + - Point Vcs-* at salsa. + * Stop copying upstream's changelog entries into the Debian changelog. + See /usr/share/doc/git-annex/changelog.gz for the upstream changelog. + * Add gpg-agent to Build-Depends. + Needed to run the test suite. + * Restore upstream's (harmless) .gitattributes. + This means that we can `dgit push{,-source}` without any special options. + * Update debian/gbp.conf + - Update packaging branch 'debian' -> 'master'. + - No longer maintaining an upstream branch. Instead, invoke `git + merge` on upstream's release tags directly. E.g. `git merge + 6.20180112`. + - Trim some cruft. + + -- Sean Whitton Tue, 13 Feb 2018 15:02:09 -0700 + +git-annex (6.20171124-1) unstable; urgency=medium + + * Package 6.20171124-1 + + -- Richard Hartmann Sun, 26 Nov 2017 12:52:18 +0100 + +git-annex (6.20171124) unstable; urgency=medium + + * Display progress meter when uploading a key without size information, + getting the size by statting the content file. + * Fix build with dns-3.0. + + -- Joey Hess Fri, 24 Nov 2017 10:49:36 -0400 + +git-annex (6.20171109) unstable; urgency=medium + + * Fix export of subdir of a branch. + * Fix exporting of non-annexed files to external special remotes. + * unlock, lock: Support --json. + * When there are multiple urls for a file, still treat it as being present + in the web when some urls don't work, as long as at least one url does + work. + * Makefile improvement for sudo make install. + Thanks, Eric Siegerman + * Makefile improvement for BUILDER=stack, use stack to run ghc. + * testremote: Test exporttree. + * Fix directory special remote's cleanup of empty export directories. + + -- Joey Hess Thu, 09 Nov 2017 12:21:49 -0400 + +git-annex (6.20171026) unstable; urgency=medium + + * Windows: Fix reversion that caused the path used to link + to annexed content to include the drive letter and full path, rather + than being relative. (`git annex fix` will fix up after this problem). + * Windows build fixed, and changed to use stack for more reliable build + environment. + * Windows: Remove wget from bundle; it needs libraries that are not + included, and git for windows includes curl which git-annex will use + instead. + * Add day to metadata when annex.genmetadata is enabled. + Thanks, Sean T Parsons + * stack.yaml: Added nix packages section. + Thanks, Sean T Parsons + + -- Joey Hess Thu, 26 Oct 2017 13:56:18 -0400 + +git-annex (6.20171018) unstable; urgency=medium + + * add: Replace work tree file atomically on systems supporting hard + links. Avoids a window where interrupting an add could result in + the file being moved into the annex, with no symlink yet created. + * webdav: Avoid unncessisarily creating the collection at the top + of the repository when storing files there, since that collection + is created by initremote. + (This seems to work around some brokenness of the box.com webdav + server, which caused uploads to be very slow or sometimes fail.) + * webdav: Make --debug show all webdav operations. + * get -J/move -J/copy -J/mirror -J/sync -J: Avoid "transfer already in + progress" errors when two files use the same key. + * Konqueror desktop file location changed to one used by plasma 5. + Thanks, Félix Sipma. + * Avoid repeated checking that files passed on the command line exist. + * Fix build with aws-0.17. + * stack.yaml: Update to lts-9.9. + + -- Joey Hess Wed, 18 Oct 2017 15:40:06 -0400 + +git-annex (6.20171003) unstable; urgency=medium + + * webdav: Improve error message for failed request to include the request + method and path. + * metadata: Added --remove-all. + * Warn when metadata is inherited from a previous version of a file, + to avoid the user being surprised in cases where that behavior is not + desired or expected. + * sync: Added --cleanup, which removes local and remote synced/ branches. + * external: When the external special remote program crashed, a newline + could be output, which messed up the expected output for --batch mode. + * external: Avoid checking EXPORTSUPPORTED for special remotes that are + not configured to use exports. + * test: Fix reversion that made it only run inside a git repository. + * copy, move: Behave same with --fast when sending to remotes located + on a local disk as when sending to other remotes. + * Fix process and file descriptor leak that was exposed when + git-annex was built with ghc 8.2.1. Broke git-annex test on OSX + due to running out of FDs, and may have also leaked in other situations. + * info: Improve cleanup of stale transfer info files. + + -- Joey Hess Tue, 03 Oct 2017 13:18:15 -0400 + +git-annex (6.20170925) unstable; urgency=medium + + * git-annex export: New command, can create and efficiently update + exports of trees to special remotes. + * Use git-annex initremote with exporttree=yes to set up a special remote + for use by git-annex export. + * Implemented export to directory, S3, and webdav special remotes. + * External special remote protocol extended to support export. + Developers of external special remotes should consider if export makes + sense for them and add support. + * sync, assistant: Update tracking exports. + * Support building with feed-1.0, while still supporting older versions. + * init: Display an additional message when it detects a filesystem that + allows writing to files whose write bit is not set. + * S3: Allow removing files from IA. + * webdav: Checking if a non-existent file is present on Box.com + triggered a bug in its webdav support that generates an infinite series + of redirects. Deal with such problems by assuming such behavior means + the file is not present. + * webdav: Fix lack of url-escaping of filenames. Mostly impacted exports + of filenames containing eg spaces. + * webdav: Changed path used on webdav server for temporary files. + + -- Joey Hess Mon, 25 Sep 2017 11:13:58 -0400 + +git-annex (6.20170818) unstable; urgency=high + + * Security fix: Disallow hostname starting with a dash, which + would get passed to ssh and be treated an option. This could + be used by an attacker who provides a crafted repository url + to cause the victim to execute arbitrary code via -oProxyCommand. + (The same class of security hole recently affected git itself.) + * git-annex.cabal: Deal with breaking changes in Cabal 2.0. + * Fix build with QuickCheck 2.10. + * fsck: Support --json. + * move, copy: Support --batch. + * Added GIT_ANNEX_VECTOR_CLOCK environment variable, which can be used to + override the default timestamps used in log files in the git-annex + branch. This is a dangerous environment variable; use with caution. + * Fix a git-annex test failure when run on NFS due to NFS lock files + preventing directory removal. + * test: Avoid most situations involving failure to delete test + directories, by forking a worker process and only deleting the test + directory once it exits. + * Disable http-client's default 30 second response timeout when HEADing + an url to check if it exists. Some web servers take quite a long time + to answer a HEAD request. + * Added remote configuration settings annex-ignore-command and + annex-sync-command, which are dynamic equivilants of the annex-ignore + and annex-sync configurations. + * Prevent spaces from being embedded in the name of new WORM keys, + as that handing spaces in keys would complicate things like the + external special remote protocol. + * migrate: WORM keys containing spaces will be migrated to not contain + spaces anymore. + * External special remotes will refuse to operate on keys with spaces in + their names. That has never worked correctly due to the design of the + external special remote protocol. Display an error message suggesting + migration. + * Fix incorrect external special remote documentation, which said that + the filename parameter to the TRANSFER command could not contain + spaces. It can in fact contain spaces. Special remotes implementors + that relied on that may need to fix bugs in their special remotes. + * Fix the external special remotes git-annex-remote-ipfs, + git-annex-remote-torrent and the example.sh template to correctly + support filenames with spaces. + * Windows: Win32 package has subsumed Win32-extras; update dependency. + + -- Joey Hess Fri, 18 Aug 2017 11:19:06 -0400 + +git-annex (6.20170520) unstable; urgency=medium + + * move --to=here moves from all reachable remotes to the local repository. + * initremote, enableremote: Support gpg subkeys suffixed with an + exclamation mark, which forces gpg to use a specific subkey. + * Improve progress display when watching file size, in cases where + a transfer does not resume. + * Fix transfer log file locking problem when running concurrent + transfers. + * Avoid concurrent git-config setting problem when running concurrent + threads. + * metadata: When setting metadata of a file that did not exist, + no error message was displayed, unlike getting metadata and most other + git-annex commands. Fixed this oversight. + * Added annex.resolvemerge configuration, which can be set to false to + disable the usual automatic merge conflict resolution done by git-annex + sync and the assistant. + * sync: Added --no-resolvemerge option. + * Avoid error about git-annex-shell not being found when + syncing with -J with a git remote where git-annex-shell is not + installed. + * Fix bug that prevented transfer locks from working when + run on SMB or other filesystem that does not support fcntl locks + and hard links. + * assistant: Merge changes from refs/remotes/foo/master into master. + Previously, only sync branches were merged. This makes regular git push + into a repository watched by the assistant auto-merge. + * Makefile: Install completions for the fish and zsh shells + when git-annex is built with optparse-applicative-0.14. + * assistant: Don't trust OSX FSEvents's eventFlagItemModified to be called + when the last writer of a file closes it; apparently that sometimes + does not happen, which prevented files from being quickly added. + + -- Joey Hess Mon, 12 Jun 2017 13:37:16 -0400 + +git-annex (6.20170519) unstable; urgency=medium + + * Ssh password prompting improved when using -J for concurrency. + When ssh connection caching is enabled (and when GIT_ANNEX_USE_GIT_SSH + is not set), only one ssh password prompt will be made per host, and + only one ssh password prompt will be made at a time. + * When built with concurrent-output 1.9, ssh password prompts will no + longer interfere with the -J display. + * Removed dependency on MissingH, instead depending on the split library. + * Progress is displayed for transfers of files of unknown size. + * Work around bug in git 2.13.0 involving GIT_COMMON_DIR that broke + merging changes into adjusted branches. + + -- Joey Hess Fri, 19 May 2017 10:37:57 -0400 + +git-annex (6.20170510) unstable; urgency=medium + + * When a http remote does not expose an annex.uuid config, only warn + about it once, not every time git-annex is run. + * multicast: New command, uses uftp to multicast annexed files, for eg + a classroom setting. + * Added remote..annex-push and remote..annex-pull + which can be useful to make remotes that don't get fully synced with + local changes. + * Disable git-annex's support for GIT_SSH and GIT_SSH_COMMAND, unless + GIT_ANNEX_USE_GIT_SSH=1 is also set in the environment. This is + necessary because as feared, the extra -n parameter that git-annex + passes breaks uses of these environment variables that expect exactly + the parameters that git passes. + * enableremote: When enabling a non-special remote, param=value + parameters can't be used, so error out if any are provided. + * enableremote: Fix re-enabling of special remotes that have a git + url, so that eg, encryption key changes take effect. They were silently + ignored, a reversion introduced in 6.20160527. + * gcrypt: Support re-enabling to change eg, encryption parameters. + This was never supported before. + * git annex add -u now supported, analagous to git add -u + * version: Added "dependency versions" line. + * Keys marked as dead are now skipped by --all. + * annex.backend is the new name for what was annex.backends, and takes + a single key-value backend, rather than the unncessary and confusing + list. The old option still works if set. + + -- Joey Hess Wed, 10 May 2017 15:05:22 -0400 + +git-annex (6.20170321) unstable; urgency=medium + + * Bugfix: Passing a command a filename that does not exist sometimes + did not display an error, when a path to a directory was also passed. + * status: Propigate nonzero exit code from git status. + * Linux standalone builds put the bundled ssh last in PATH, + so any system ssh will be preferred over it. + * assistant: Add 1/200th second delay between checking each file + in the full transfer scan, to avoid using too much CPU. + * get -J: Improve distribution of jobs amoung remotes when there are more + jobs than remotes. + * fsck -q: When a file has bad content, include the name of the file + in the warning message. + * Windows: Improve handling of shebang in external special remote + program, searching for the program in the PATH. + * Drop support for building with old versions of dns, http-conduit, + directory, feed, and http-types. + * Windows: Fix bug in shell script shebang lookup code that + caused a "delayed read on closed handle" error. + * git-annex-shell: Fix bug when used with a recently cloned repository, + where "merging" messages were included in the output of configlist + (and perhaps other commands) and caused a "Failed to get annex.uuid + configuration" error. + * Support GIT_SSH and GIT_SSH_COMMAND, which are handled close the same + as they are by git. However, unlike git, git-annex sometimes needs to + pass the -n parameter when using these. + * sync --content-of=path (-C path) added for when you want to sync + only some files' contents, not the whole working tree. + + -- Joey Hess Tue, 21 Mar 2017 11:27:38 -0400 + +git-annex (6.20170301.1) unstable; urgency=medium + + * Fix reversion in yesterday's release that made SHA1E and MD5E backends + not work. + + -- Joey Hess Wed, 01 Mar 2017 12:46:03 -0400 + +git-annex (6.20170301) unstable; urgency=medium + + * No changes from 6.20170228; a new version number was needed due + to a problem with Hackage. + + -- Joey Hess Wed, 01 Mar 2017 12:06:02 -0400 + +git-annex (6.20170228) unstable; urgency=medium + + * Cryptographically secure hashes can be forced to be used in a + repository, by setting annex.securehashesonly. + This does not prevent the git repository from containing links + to insecure hashes, but it does prevent the content of such files + from being added to .git/annex/objects by any method. + * Tighten key parser to prevent SHA1 collision attacks generating + two keys that have the same SHA1. (Only done for keys that contain + a hash). This ensures that signed git commits of annexed files + will remain secure, as long as git-annex is using a secure hashing + backend. + * fsck: Warn about any files whose content is present, that don't + use secure hashes, when annex.securehashesonly is set. + * init: When annex.securehashesonly has been set with git-annex config, + copy that value to the annex.securehashesonly git config. + * Added --securehash option to match files using a secure hash function, + and corresponding securehash preferred content expression. + * sync, merge: Fail when the current branch has no commits yet, instead + of not merging in anything from remotes and appearing to succeed. + * Run ssh with -n whenever input is not being piped into it, + to avoid it consuming stdin that it shouldn't. + This fixes git-annex-checkpresentkey --batch remote, + which didn't output results for all keys passed into it. Other + git-annex commands that communicate with a remote over ssh may also + have been consuming stdin that they shouldn't have, which could have + impacted using them in eg, shell scripts. + * sync: Improve integration with receive.denyCurrentBranch=updateInstead, + displaying error messages from the remote then it fails to update + its checked out branch. + * Added post-recieve hook, which makes updateInstead work with direct + mode and adjusted branches. + * init: Set up the post-receive hook. + * sync: When syncing with a local repository located on a crippled + filesystem, run the post-receive hook there, since it wouldn't get run + otherwise. This makes pushing to repos on FAT-formatted removable + drives update them when receive.denyCurrentBranch=updateInstead. + * config group groupwanted numcopies schedule wanted required: + Avoid displaying extraneous messages about repository auto-init, + git-annex branch merging, etc, when being used to get information. + * adjust: Fix behavior when used in a repository that contains + submodules. + * Run wget with -nv instead of -q, so it will display HTTP errors. + * Run curl with -S, so HTTP errors are displayed, even when + it's otherwise silent. + * When downloading in --json or --quiet mode, use curl in preference + to wget, since curl is able to display only errors to stderr, unlike + wget. + * status: Pass --ignore-submodules=when option on to git status. + * config --set: As well as setting value in git-annex branch, + set local gitconfig. This is needed especially for + annex.securehashesonly, which is read only from local gitconfig and not + the git-annex branch. + * Removed support for building with the old cryptohash library. + Building with that library made git-annex not support SHA3; it's time + for that to always be supported in case SHA2 dominoes. + * git-annex.cabal: Make crypto-api a dependency even when built w/o + webapp and test suite. + + -- Joey Hess Tue, 28 Feb 2017 14:39:47 -0400 + +git-annex (6.20170214) unstable; urgency=medium + + * Increase default cost for p2p remotes from 200 to 1000. + This makes git-annex prefer transferring data from special + remotes when possible. + * Remove -j short option for --json-progress; that option was already + taken for --json. + * vicfg: Include the numcopies configuation. + * config: New command for storing configuration in the git-annex branch. + * annex.autocommit can be configured via git-annex config, to control + the default behavior in all clones of a repository. + * New annex.synccontent config setting, which can be set to true to make + git annex sync default to --content. This may become the default at + some point in the future. As well as being configuable by git config, + it can be configured by git-annex config to control the default + behavior in all clones of a repository. + * stack.yaml: Update to lts-7.18. + * Some optimisations to string splitting code. + * unused: When large files are checked right into git, avoid buffering + their contents in memory. + * unused: Improved memory use significantly when there are a lot + of differences between branches. + * Wormhole pairing will start to provide an appid to wormhole on + 2021-12-31. An appid can't be provided now because Debian stable is going + to ship a older version of git-annex that does not provide an appid. + Assumption is that by 2021-12-31, this version of git-annex will be + shipped in a Debian stable release. If that turns out to not be the + case, this change will need to be cherry-picked into the git-annex in + Debian stable, or its wormhole pairing will break. + * Fix build with aws 0.16. Thanks, aristidb. + * assistant: Make --autostart --foreground wait for the children it + starts. Before, the --foreground was ignored when autostarting. + * initremote: When a uuid= parameter is passed, use the specified + UUID for the new special remote, instead of generating a UUID. + This can be useful in some situations, eg when the same data can be + accessed via two different special remote backends. + * import: Changed how --deduplicate, --skip-duplicates, and + --clean-duplicates determine if a file is a duplicate. + Before, only content known to be present somewhere was considered + a duplicate. Now, any content that has been annexed before will be + considered a duplicate, even if all annexed copies of the data have + been lost. + Note that --clean-duplicates and --deduplicate still check + numcopies, so won't delete duplicate files unless there's an annexed + copy. + * import: --deduplicate and --skip-duplicates were implemented + inneficiently; they unncessarily hashed each file twice. They have + been improved to only hash once. + * import: Added --reinject-duplicates. + * Added git template directory to Linux standalone tarball and OSX + app bundle. + * Improve pid locking code to work on filesystems that don't support hard + links. + * S3: Fix check of uuid file stored in bucket, which was not working. + * Work around sqlite's incorrect handling of umask when creating + databases. + + -- Joey Hess Tue, 14 Feb 2017 14:22:00 -0400 + +git-annex (6.20170818-1) unstable; urgency=high + + * Package 6.20170818-1 + + -- Richard Hartmann Sun, 20 Aug 2017 12:25:57 +0200 + +git-annex (6.20170818) unstable; urgency=high + + * Security fix: Disallow hostname starting with a dash, which + would get passed to ssh and be treated an option. This could + be used by an attacker who provides a crafted repository url + to cause the victim to execute arbitrary code via -oProxyCommand. + (The same class of security hole recently affected git itself.) + * git-annex.cabal: Deal with breaking changes in Cabal 2.0. + * Fix build with QuickCheck 2.10. + * fsck: Support --json. + * move, copy: Support --batch. + * Added GIT_ANNEX_VECTOR_CLOCK environment variable, which can be used to + override the default timestamps used in log files in the git-annex + branch. This is a dangerous environment variable; use with caution. + * Fix a git-annex test failure when run on NFS due to NFS lock files + preventing directory removal. + * test: Avoid most situations involving failure to delete test + directories, by forking a worker process and only deleting the test + directory once it exits. + * Disable http-client's default 30 second response timeout when HEADing + an url to check if it exists. Some web servers take quite a long time + to answer a HEAD request. + * Added remote configuration settings annex-ignore-command and + annex-sync-command, which are dynamic equivilants of the annex-ignore + and annex-sync configurations. + * Prevent spaces from being embedded in the name of new WORM keys, + as that handing spaces in keys would complicate things like the + external special remote protocol. + * migrate: WORM keys containing spaces will be migrated to not contain + spaces anymore. + * External special remotes will refuse to operate on keys with spaces in + their names. That has never worked correctly due to the design of the + external special remote protocol. Display an error message suggesting + migration. + * Fix incorrect external special remote documentation, which said that + the filename parameter to the TRANSFER command could not contain + spaces. It can in fact contain spaces. Special remotes implementors + that relied on that may need to fix bugs in their special remotes. + * Fix the external special remotes git-annex-remote-ipfs, + git-annex-remote-torrent and the example.sh template to correctly + support filenames with spaces. + * Windows: Win32 package has subsumed Win32-extras; update dependency. + + -- Joey Hess Fri, 18 Aug 2017 11:19:06 -0400 + +git-annex (6.20170520) unstable; urgency=medium + + * move --to=here moves from all reachable remotes to the local repository. + * initremote, enableremote: Support gpg subkeys suffixed with an + exclamation mark, which forces gpg to use a specific subkey. + * Improve progress display when watching file size, in cases where + a transfer does not resume. + * Fix transfer log file locking problem when running concurrent + transfers. + * Avoid concurrent git-config setting problem when running concurrent + threads. + * metadata: When setting metadata of a file that did not exist, + no error message was displayed, unlike getting metadata and most other + git-annex commands. Fixed this oversight. + * Added annex.resolvemerge configuration, which can be set to false to + disable the usual automatic merge conflict resolution done by git-annex + sync and the assistant. + * sync: Added --no-resolvemerge option. + * Avoid error about git-annex-shell not being found when + syncing with -J with a git remote where git-annex-shell is not + installed. + * Fix bug that prevented transfer locks from working when + run on SMB or other filesystem that does not support fcntl locks + and hard links. + * assistant: Merge changes from refs/remotes/foo/master into master. + Previously, only sync branches were merged. This makes regular git push + into a repository watched by the assistant auto-merge. + * Makefile: Install completions for the fish and zsh shells + when git-annex is built with optparse-applicative-0.14. + * assistant: Don't trust OSX FSEvents's eventFlagItemModified to be called + when the last writer of a file closes it; apparently that sometimes + does not happen, which prevented files from being quickly added. + + -- Joey Hess Mon, 12 Jun 2017 13:37:16 -0400 + +git-annex (6.20170519) unstable; urgency=medium + + * Ssh password prompting improved when using -J for concurrency. + When ssh connection caching is enabled (and when GIT_ANNEX_USE_GIT_SSH + is not set), only one ssh password prompt will be made per host, and + only one ssh password prompt will be made at a time. + * When built with concurrent-output 1.9, ssh password prompts will no + longer interfere with the -J display. + * Removed dependency on MissingH, instead depending on the split library. + * Progress is displayed for transfers of files of unknown size. + * Work around bug in git 2.13.0 involving GIT_COMMON_DIR that broke + merging changes into adjusted branches. + + -- Joey Hess Fri, 19 May 2017 10:37:57 -0400 + +git-annex (6.20170510) unstable; urgency=medium + + * When a http remote does not expose an annex.uuid config, only warn + about it once, not every time git-annex is run. + * multicast: New command, uses uftp to multicast annexed files, for eg + a classroom setting. + * Added remote..annex-push and remote..annex-pull + which can be useful to make remotes that don't get fully synced with + local changes. + * Disable git-annex's support for GIT_SSH and GIT_SSH_COMMAND, unless + GIT_ANNEX_USE_GIT_SSH=1 is also set in the environment. This is + necessary because as feared, the extra -n parameter that git-annex + passes breaks uses of these environment variables that expect exactly + the parameters that git passes. + * enableremote: When enabling a non-special remote, param=value + parameters can't be used, so error out if any are provided. + * enableremote: Fix re-enabling of special remotes that have a git + url, so that eg, encryption key changes take effect. They were silently + ignored, a reversion introduced in 6.20160527. + * gcrypt: Support re-enabling to change eg, encryption parameters. + This was never supported before. + * git annex add -u now supported, analagous to git add -u + * version: Added "dependency versions" line. + * Keys marked as dead are now skipped by --all. + * annex.backend is the new name for what was annex.backends, and takes + a single key-value backend, rather than the unncessary and confusing + list. The old option still works if set. + + -- Joey Hess Wed, 10 May 2017 15:05:22 -0400 + +git-annex (6.20170321) unstable; urgency=medium + + * Bugfix: Passing a command a filename that does not exist sometimes + did not display an error, when a path to a directory was also passed. + * status: Propigate nonzero exit code from git status. + * Linux standalone builds put the bundled ssh last in PATH, + so any system ssh will be preferred over it. + * assistant: Add 1/200th second delay between checking each file + in the full transfer scan, to avoid using too much CPU. + * get -J: Improve distribution of jobs amoung remotes when there are more + jobs than remotes. + * fsck -q: When a file has bad content, include the name of the file + in the warning message. + * Windows: Improve handling of shebang in external special remote + program, searching for the program in the PATH. + * Drop support for building with old versions of dns, http-conduit, + directory, feed, and http-types. + * Windows: Fix bug in shell script shebang lookup code that + caused a "delayed read on closed handle" error. + * git-annex-shell: Fix bug when used with a recently cloned repository, + where "merging" messages were included in the output of configlist + (and perhaps other commands) and caused a "Failed to get annex.uuid + configuration" error. + * Support GIT_SSH and GIT_SSH_COMMAND, which are handled close the same + as they are by git. However, unlike git, git-annex sometimes needs to + pass the -n parameter when using these. + * sync --content-of=path (-C path) added for when you want to sync + only some files' contents, not the whole working tree. + + -- Joey Hess Tue, 21 Mar 2017 11:27:38 -0400 + +git-annex (6.20170301.1) unstable; urgency=medium + + * Fix reversion in yesterday's release that made SHA1E and MD5E backends + not work. + + -- Joey Hess Wed, 01 Mar 2017 12:46:03 -0400 + +git-annex (6.20170301) unstable; urgency=medium + + * No changes from 6.20170228; a new version number was needed due + to a problem with Hackage. + + -- Joey Hess Wed, 01 Mar 2017 12:06:02 -0400 + +git-annex (6.20170228) unstable; urgency=medium + + * Cryptographically secure hashes can be forced to be used in a + repository, by setting annex.securehashesonly. + This does not prevent the git repository from containing links + to insecure hashes, but it does prevent the content of such files + from being added to .git/annex/objects by any method. + * Tighten key parser to prevent SHA1 collision attacks generating + two keys that have the same SHA1. (Only done for keys that contain + a hash). This ensures that signed git commits of annexed files + will remain secure, as long as git-annex is using a secure hashing + backend. + * fsck: Warn about any files whose content is present, that don't + use secure hashes, when annex.securehashesonly is set. + * init: When annex.securehashesonly has been set with git-annex config, + copy that value to the annex.securehashesonly git config. + * Added --securehash option to match files using a secure hash function, + and corresponding securehash preferred content expression. + * sync, merge: Fail when the current branch has no commits yet, instead + of not merging in anything from remotes and appearing to succeed. + * Run ssh with -n whenever input is not being piped into it, + to avoid it consuming stdin that it shouldn't. + This fixes git-annex-checkpresentkey --batch remote, + which didn't output results for all keys passed into it. Other + git-annex commands that communicate with a remote over ssh may also + have been consuming stdin that they shouldn't have, which could have + impacted using them in eg, shell scripts. + * sync: Improve integration with receive.denyCurrentBranch=updateInstead, + displaying error messages from the remote then it fails to update + its checked out branch. + * Added post-recieve hook, which makes updateInstead work with direct + mode and adjusted branches. + * init: Set up the post-receive hook. + * sync: When syncing with a local repository located on a crippled + filesystem, run the post-receive hook there, since it wouldn't get run + otherwise. This makes pushing to repos on FAT-formatted removable + drives update them when receive.denyCurrentBranch=updateInstead. + * config group groupwanted numcopies schedule wanted required: + Avoid displaying extraneous messages about repository auto-init, + git-annex branch merging, etc, when being used to get information. + * adjust: Fix behavior when used in a repository that contains + submodules. + * Run wget with -nv instead of -q, so it will display HTTP errors. + * Run curl with -S, so HTTP errors are displayed, even when + it's otherwise silent. + * When downloading in --json or --quiet mode, use curl in preference + to wget, since curl is able to display only errors to stderr, unlike + wget. + * status: Pass --ignore-submodules=when option on to git status. + * config --set: As well as setting value in git-annex branch, + set local gitconfig. This is needed especially for + annex.securehashesonly, which is read only from local gitconfig and not + the git-annex branch. + * Removed support for building with the old cryptohash library. + Building with that library made git-annex not support SHA3; it's time + for that to always be supported in case SHA2 dominoes. + * git-annex.cabal: Make crypto-api a dependency even when built w/o + webapp and test suite. + + -- Joey Hess Tue, 28 Feb 2017 14:39:47 -0400 + +git-annex (6.20170214) unstable; urgency=medium + + * Increase default cost for p2p remotes from 200 to 1000. + This makes git-annex prefer transferring data from special + remotes when possible. + * Remove -j short option for --json-progress; that option was already + taken for --json. + * vicfg: Include the numcopies configuation. + * config: New command for storing configuration in the git-annex branch. + * annex.autocommit can be configured via git-annex config, to control + the default behavior in all clones of a repository. + * New annex.synccontent config setting, which can be set to true to make + git annex sync default to --content. This may become the default at + some point in the future. As well as being configuable by git config, + it can be configured by git-annex config to control the default + behavior in all clones of a repository. + * stack.yaml: Update to lts-7.18. + * Some optimisations to string splitting code. + * unused: When large files are checked right into git, avoid buffering + their contents in memory. + * unused: Improved memory use significantly when there are a lot + of differences between branches. + * Wormhole pairing will start to provide an appid to wormhole on + 2021-12-31. An appid can't be provided now because Debian stable is going + to ship a older version of git-annex that does not provide an appid. + Assumption is that by 2021-12-31, this version of git-annex will be + shipped in a Debian stable release. If that turns out to not be the + case, this change will need to be cherry-picked into the git-annex in + Debian stable, or its wormhole pairing will break. + * Fix build with aws 0.16. Thanks, aristidb. + * assistant: Make --autostart --foreground wait for the children it + starts. Before, the --foreground was ignored when autostarting. + * initremote: When a uuid= parameter is passed, use the specified + UUID for the new special remote, instead of generating a UUID. + This can be useful in some situations, eg when the same data can be + accessed via two different special remote backends. + * import: Changed how --deduplicate, --skip-duplicates, and + --clean-duplicates determine if a file is a duplicate. + Before, only content known to be present somewhere was considered + a duplicate. Now, any content that has been annexed before will be + considered a duplicate, even if all annexed copies of the data have + been lost. + Note that --clean-duplicates and --deduplicate still check + numcopies, so won't delete duplicate files unless there's an annexed + copy. + * import: --deduplicate and --skip-duplicates were implemented + inneficiently; they unncessarily hashed each file twice. They have + been improved to only hash once. + * import: Added --reinject-duplicates. + * Added git template directory to Linux standalone tarball and OSX + app bundle. + * Improve pid locking code to work on filesystems that don't support hard + links. + * S3: Fix check of uuid file stored in bucket, which was not working. + * Work around sqlite's incorrect handling of umask when creating + databases. + + -- Joey Hess Tue, 14 Feb 2017 14:22:00 -0400 + +git-annex (6.20170101-1) unstable; urgency=medium + + * Package 6.20170101-1 + + -- Richard Hartmann Fri, 06 Jan 2017 14:48:34 +0100 + +git-annex (6.20170101) unstable; urgency=medium + + * XMPP support has been removed from the assistant in this release. + If your repositories used XMPP to keep in sync, that will no longer + work, and you should enable some other remote to keep them in sync. + A ssh server is one way, or use the new Tor pairing feature. + * p2p --pair makes it easy to pair repositories, over Tor, using + Magic Wormhole codes to find the other repository. + See http://git-annex.branchable.com/tips/peer_to_peer_network_with_tor/ + * webapp: The "Share with a friend" and "Share with your other devices" + pages have been changed to pair repositories using Tor and Magic Wormhole. + * metadata --batch: Fix bug when conflicting metadata changes were + made in the same batch run. + * Pass annex.web-options to wget and curl after other options, so that + eg --no-show-progress can be set by the user to disable the default + --show-progress. + * Revert ServerAliveInterval change in 6.20161111, which caused problems + with too many old versions of ssh and unusual ssh configurations. + It should have not been needed anyway since ssh is supposted to + have TCPKeepAlive enabled by default. + * Make all --batch input, as well as fromkey and registerurl stdin + be processed without requiring it to be in the current encoding. + * p2p: --link no longer takes a remote name, instead the --name + option can be used. + * Linux standalone: Improve generation of locale definition files, + supporting locales such as en_GB.UTF-8. + * rekey --force: Incorrectly marked the new key's content as being + present in the local repo even when it was not. + * enable-tor: Put tor sockets in /var/lib/tor-annex/, rather + than in /etc/tor/hidden_service/. + * enable-tor: No longer needs to be run as root. + * enable-tor: When run as a regular user, also tests a connection back to + the hidden service over tor. + * Support all common locations of the torrc file. + * Always use filesystem encoding for all file and handle reads and + writes. + * Fix build with directory-1.3. + * Debian: Suggest tor and magic-wormhole. + * Debian: Build webapp on armel. + + -- Joey Hess Sat, 31 Dec 2016 15:11:04 -0400 + +git-annex (6.20161210-1) unstable; urgency=medium + + * Package 6.20161210-1 + + -- Richard Hartmann Sat, 10 Dec 2016 20:18:21 +0100 + +git-annex (6.20161210) unstable; urgency=medium + + * enable-tor: New command, enables tor hidden service for P2P syncing. + * p2p: New command, allows linking repositories using a P2P network. + * remotedaemon: Serve tor hidden service. + * Added git-remote-tor-annex, which allows git pull and push to the tor + hidden service. + * remotedaemon: Fork to background by default. Added --foreground switch + to enable old behavior. + * addurl: Fix bug in checking annex.largefiles expressions using + largerthan, mimetype, and smallerthan; the first two always failed + to match, and the latter always matched. + * Relicense 5 source files that are not part of the webapp from AGPL to GPL. + * map: Run xdot if it's available in PATH. On OSX, the dot command + does not support graphical display, while xdot does. + * Debian: xdot is a better interactive viewer than dot, so Suggest + xdot, rather than graphviz. + * rmurl: Multiple pairs of files and urls can be provided on the + command line. + * rmurl: Added --batch mode. + * fromkey: Accept multiple pairs of files and keys. + Thanks, Daniel Brooks. + * rekey: Added --batch mode. + * add: Stage modified non-large files when running in indirect mode. + (This was already done in v6 mode and direct mode.) + * git-annex-shell, remotedaemon, git remote: Fix some memory DOS attacks. + * Fix build with http-client 0.5. + Thanks, Alper Nebi Yasak. + + -- Joey Hess Sat, 10 Dec 2016 11:56:25 -0400 + +git-annex (6.20161118-1) unstable; urgency=medium + + * Package 6.20161118-1 + + -- Richard Hartmann Fri, 18 Nov 2016 17:37:25 +0100 + +git-annex (6.20161118) unstable; urgency=medium + + * git-annex.cabal: Loosen bounds on persistent to allow 2.5, which + on Debian has been patched to work with esqueleto. + This may break cabal's resolver on non-Debian systems; + if so, either use stack to build, or run cabal with + --constraint='persistent ==2.2.4.1' + Hopefully this mess with esqueleto will be resolved soon. + * sync: Pass --allow-unrelated-histories to git merge when used with git + git 2.9.0 or newer. This makes merging a remote into a freshly created + direct mode repository work the same as it works in indirect mode. + * Avoid backtraces on expected failures when built with ghc 8; + only use backtraces for unexpected errors. + * fsck --all --from was checking the existence and content of files + in the local repository, rather than on the special remote. Oops. + * Linux arm standalone: Build with a 32kb page size, which is needed + on several ARM NAS devices, including Drobo 5N, and WD NAS. + + -- Joey Hess Fri, 18 Nov 2016 11:43:14 -0400 + +git-annex (6.20161111-1) unstable; urgency=medium + + * Package 6.20161111-1 + + -- Richard Hartmann Wed, 16 Nov 2016 19:39:39 +0100 + +git-annex (6.20161111) unstable; urgency=medium + + * Restarting a crashing git process could result in filename encoding + issues when not in a unicode locale, as the restarted processes's + handles were not read in raw mode. + * Make .git/annex/ssh.config file work with versions of ssh older than + 7.3, which don't support Include. When used with an older version + of ssh, any ServerAliveInterval in ~/.ssh/config will be overridden + by .git/annex/ssh.config. + * S3: Support the special case endpoint needed for the cn-north-1 region. + * Webapp: Don't list the Frankfurt S3 region, as this (and some other new + regions) need V4 authorization which the aws library does not yet use. + * reinject --known: Avoid second, unncessary checksum of file. + * OSX: Remove RPATHs from git-annex binary, which are not needed, + slow down startup, and break the OSX Sierra linker. + * webapp: Explicitly avoid checking for auth in static subsite + requests. Yesod didn't used to do auth checks for that, but this may + have changed. + * Linux standalone: Avoid using hard links in the tarball so it can be + untarred on eg, afs which does not support them. + + -- Joey Hess Fri, 11 Nov 2016 14:46:39 -0400 + +git-annex (6.20161031-1) unstable; urgency=medium + + * Package 6.20161031-1 + * Update cabal dependency on persistent Closes: #842572 + + -- Richard Hartmann Sun, 06 Nov 2016 19:22:02 +0100 + +git-annex (6.20161031) unstable; urgency=medium + + * Assistant, repair: Fix ignoring of git fsck errors due to + duplicate file entries in tree objects. + * Linux standalone: Fix location of locale files in the bundle. + * Fix reversion in 6.20161012 that prevented adding files with a space + in their name. + + -- Joey Hess Mon, 31 Oct 2016 18:55:59 -0400 + +git-annex (6.20161027-1) unstable; urgency=medium + + * Package 6.20161027-1 + + -- Richard Hartmann Thu, 27 Oct 2016 21:53:55 +0200 + +git-annex (6.20161027) unstable; urgency=medium + + * lock, smudge: Fix edge cases where data loss could occur in v6 mode + when the keys database was not populated. + * upgrade: Handle upgrade to v6 when the repository already contains + v6 unlocked files whose content is already present. + * Improve style of offline html build of website. + * importfeed: Drop URL parameters from file extension. + Thanks, James MacMahon. + * Assistant, repair: Improved filtering out of git fsck lines about + duplicate file entries in tree objects. + * test: Deal with gpg-agent behavior change that broke the test suite. + * Improve ssh socket cleanup code to skip over the cruft that + NFS sometimes puts in a directory when a file is being deleted. + * If a transfer fails for some reason, but some data managed to be sent, + the transfer will be retried. (The assistant already did this.) + * Run ssh with ServerAliveInterval 60, so that stalled transfers will + be noticed within about 3 minutes. + (Any setting in your ~/.ssh/config or /etc/ssh/ssh_config + overrides this.) + + -- Joey Hess Thu, 27 Oct 2016 15:21:58 -0400 + +git-annex (6.20161012-1) unstable; urgency=medium + + * Package 6.20161012-1 + + -- Richard Hartmann Tue, 25 Oct 2016 21:28:12 +0200 + +git-annex (6.20161012) unstable; urgency=medium + + * Optimisations to time it takes git-annex to walk working tree and find + files to work on. Sped up by around 18%. + * Optimisations to git-annex branch query and setting, avoiding repeated + copies of the environment. Speeds up commands like + "git-annex find --in remote" by over 50%. + * Optimised git-annex branch log file timestamp parsing. + * Add "total-size" field to --json-progress output. + * Make --json-progress output be shown even when the size of a object + is not known. + * Multiple external special remote processes for the same remote will be + started as needed when using -J. This should not beak any existing + external special remotes, because running multiple git-annex commands + at the same time could already start multiple processes for the same + external special remotes. + * Linux standalone: Include locale files in the bundle, and generate + locale definition files for the locales in use when starting runshell. + (Currently only done for utf-8 locales.) + * Avoid using a lot of memory when large objects are present in the git + repository and have to be checked to see if they are a pointed to an + annexed file. Cases where such memory use could occur included, but + were not limited to: + - git commit -a of a large unlocked file (in v5 mode) + - git-annex adjust when a large file was checked into git directly + * When auto-upgrading a v3 remote, avoid upgrading to version 6, + instead keep it at version 5. + * Support using v3 repositories without upgrading them to v5. + * sync: Fix bug in adjusted branch merging that could cause recently + added files to be lost when updating the adjusted branch. + + -- Joey Hess Wed, 12 Oct 2016 09:37:41 -0400 + +git-annex (6.20160923-1) unstable; urgency=medium + + * Package 6.20160923-1 + + -- Richard Hartmann Fri, 30 Sep 2016 20:31:25 +0200 + +git-annex (6.20160923) unstable; urgency=medium + + * Rate limit console progress display updates to 10 per second. + Was updating as frequently as changes were reported, up to hundreds of + times per second, which used unncessary bandwidth when running git-annex + over ssh etc. + * Make --json and --quiet work when used with -J. + Previously, -J override the other options. + * addurl, get: Added --json-progress option, which adds progress + objects to the json output. + * Remove key:null from git-annex add --json output. + * copy, move, mirror: Support --json and --json-progress. + * Improve gpg secret key list parser to deal with changes in gpg 2.1.15. + Fixes key name display in webapp. + * info: Support being passed a treeish, and show info about the annexed + files in it similar to how a directory is handled. + * sync: Previously, when run in a branch with a slash in its name, + such as "foo/bar", the sync branch was "synced/bar". That conflicted + with the sync branch used for branch "bar", so has been changed to + "synced/foo/bar". + * Note that if you're using an old version of git-annex to sync with + a branch with a slash in its name, it won't see some changes synced by + this version, and this version won't see some changes synced by the older + version. This is not a problem if there's a central bare repository, + but may impact other configurations until git-annex is upgraded to this + version. + * adjust: Previously, when adjusting a branch with a slash in its name, + such as "foo/bar", the adjusted branch was "adjusted/bar(unlocked)". + That conflicted with the adjusted branch used for branch "bar", + so has been changed to "adjusted/foo/bar(unlocked)" + * Also, running sync in an adjusted branch did not correctly sync + changes back to the parent branch when it had a slash in its name. + This bug has been fixed. + * addurl, importfeed: Improve behavior when file being added is gitignored. + + -- Joey Hess Fri, 23 Sep 2016 09:43:26 -0400 + +git-annex (6.20160907) unstable; urgency=medium + + * Windows: Handle shebang in external special remote program. + * Fix formatting of git-annex-smudge man page, and improve mdwn2man. + Thanks, Jim Paris. + * examimekey: Allow being run in a git repo that is not initialized by + git-annex yet. + * Android: Fix disabling use of cp --reflink=auto, curl, sha224, and sha384. + * Make --json and --quiet suppress automatic init messages, and any + other messages that might be output before a command starts. + Fixes a reversion introduced in version 5.20150727. + * Assistant, repair: Filter out git fsck lines about duplicate file + entries in tree objects. + * get -J, sync --content -J: Download different files from different + remotes when the remotes have the same costs. + + -- Joey Hess Wed, 07 Sep 2016 11:12:11 -0400 + +git-annex (6.20160808-1) unstable; urgency=medium + + * Package 6.2016008-1 + + -- Richard Hartmann Sat, 27 Aug 2016 01:23:16 +0200 + +git-annex (6.20160808) unstable; urgency=medium + + * metadata --json output format has changed, adding a inner json object + named "fields" which contains only the fields and their values. + This should be easier to parse than the old format, which mixed up + metadata fields with other keys in the json object. + Any consumers of the old format will need to be updated. + * Added metadata --batch option, which allows getting, setting, deleting, + and modifying metadata for multiple files/keys. + * Added --branch option to copy, drop, fsck, get, metadata, mirror, move, + and whereis commands. This option makes git-annex operate on files that + are included in a specified branch (or other treeish). + * git-annex.cabal: Temporarily limit to http-conduit <2.2.0 + since aws 0.14.0 is not compatible with the newer version. + * git-annex.cabal: Temporarily limit to persistent <2.5 + since esqueleto 2.4.3 is not compatible with the newer version. + * Removed dependency on json library; all JSON is now handled by aeson. + * When built with uuid-1.3.12, generate more random UUIDs than before. + (However, this did not impact git-annex much, so a hard depedency has + not been added on uuid-1.3.12.) + * info: When run on a file now includes an indication of whether + the content is present locally. + * get, move, copy, mirror: Added --failed switch which retries + failed copies/moves. + * Re-enable accumulating transfer failure log files for command-line + actions (disabled in 5.20150522), and remove the log files after + successful transfers. + + -- Joey Hess Mon, 08 Aug 2016 11:42:17 -0400 + +git-annex (6.20160719-1) unstable; urgency=medium + + * Package 6.20160719-1 + * Note that upstream typo-ed the version as June, I am releasing as July + + -- Richard Hartmann Wed, 20 Jul 2016 07:50:14 +0200 + +git-annex (6.20160619) unstable; urgency=medium + + * get, drop: Add --batch and --json options. + * testremote: Fix crash when testing a freshly made external special remote. + * Remove unnecessary rpaths in the git-annex binary, but only when + it's built using make, not cabal. + This speeds up git-annex startup time by around 50%. + * Speed up startup time by caching the refs that have been merged into + the git-annex branch. + This can speed up git-annex commands by as much as a second, + depending on the number of remotes. + * fsck: Fix a reversion in direct mode fsck of a file that is + present when the location log thinks it is not. Reversion introduced + in version 5.20151208. + * uninit: Fix crash due to trying to write to deleted keys db. + Reversion introduced by v6 mode support, affects v5 too. + * Fix a similar crash when the webapp is used to delete a repository. + * Support checking presence of content at a http url that redirects to + a ftp url. + * log: Added --all option. + * New url for git-remote-gcrypt, now maintained by spwhitton. + * webapp: Don't allow deleting a remote that has syncing disabled, + as such a deletion will never finish. + Thanks, Farhan Kathawala. + * webapp: Escape unusual characters in ssh hostnames when generating + mangled hostnames. This allows IPv6 addresses to be used on filesystems + not supporting : in filenames. + * Avoid any access to keys database in v5 mode repositories, which + are not supposed to use that database. + * Remove the EKG build flag, since Gentoo for some reason decided to + enable this flag, depsite it not being intended for production use and + so disabled by default. + + -- Joey Hess Tue, 19 Jul 2016 14:17:54 -0400 + +git-annex (6.20160613-1) unstable; urgency=medium + + * Package 6.20160613-1 + + -- Richard Hartmann Tue, 19 Jul 2016 18:48:50 +0200 + +git-annex (6.20160613) unstable; urgency=medium + + * Improve SHA*E extension extraction code. + * Windows: Avoid terminating git-annex branch lines with \r\n when + union merging and performing transitions. + * Remove Makefile from cabal tarball; man page building is now handled by + a small haskell program. + * sync --content: Fix bug that caused transfers of files to be made + to a git remote that does not have a UUID. This particularly impacted + clones from gcrypt repositories. + * Pass -S to git commit-tree when commit.gpgsign is set and when + making a non-automatic commit, in order to preserve current behavior + when used with git 2.9, which has stopped doing this itself. + * remotedaemon: Fixed support for notifications of changes to gcrypt + remotes, which was never tested and didn't quite work before. + * list: Do not include dead repositories. + * move --to: Better behavior when system is completely out of disk space; + drop content from disk before writing location log. + * Avoid a crash if getpwuid does not work, when querying the user's full + name. + * Automatically enable v6 mode when initializing in a clone from a repo + that has an adjusted branch checked out. + * v6: Fix initialization of a bare clone of a repo that has an adjusted + branch checked out. + * v6: Fix bad automatic merge conflict resolution between an annexed file + and a directory with the same name when in an adjusted branch. + * v6: Fix bad merge in an adjusted branch that resulted in an empty tree. + * v6: Fix bug in initialization of clone from a repo with an adjusted branch + that had not been synced back to master. + (This bug caused broken tree objects to get built by a later git annex + sync.) + * v6: Make lock and unlock work on files whose content is not present. + * v6: Fix update of associated files db when unlocking a file. + * v6: Make git clean filter preserve the backend that was used for a file. + + -- Joey Hess Mon, 13 Jun 2016 14:57:38 -0400 + +git-annex (6.20160511-1) unstable; urgency=medium + + * Package 6.20160511-1 + + -- Richard Hartmann Sat, 14 May 2016 15:50:11 +0200 + +git-annex (6.20160511) unstable; urgency=medium + + * Fix bug that sometimes prevented git-annex smudge --clean from consuming + all its input, which resulted in git add bypassing git-annex. + * Fix build with directory-1.2.6.2. + * Improve behavior when a just added http remote is not available + during uuid probe. Do not mark it as annex-ignore, so it will be tried + again later. + * Android: Icon refresh. + Thanks, freewheelinfranks. + * Added DIRHASH-LOWER to external special remote protocol. + * git-annex.cabal: Add Setup-Depends. + * stack.yaml: Enable explicit-setup-deps. + * Windows: Fix several bugs in propigation of changes from the adjusted + branch back to the master branch. + * Windows: Fix an over-long temp directory name. + * map: Hide dead repositories that are not connected to the graph. + * map: Changed colors; red is used for untrusted repositories and grey + for dead. + * version: Display OS version and architecture too. + * Propigate GIT_DIR and GIT_WORK_TREE environment to external special + remotes. + * Added annex.gnupg-decrypt-options and + remote..annex-gnupg-decrypt-options, which are passed to gpg + when it's decrypting data. + * fsck: When a key is not previously known in the location log, + record something so that reinject --known will work. + * In the unusual configuration where annex.crippledfilesystem=true but + core.symlinks=true, store object contents in mixed case hash + directories so that symlinks will point to them. + * Added new encryption=sharedpubkey mode for special remotes. + This is useful for makking a special remote that anyone with a clone + of the repo and your public keys can upload files to, but only you can + decrypt the files stored in it. + + -- Joey Hess Wed, 11 May 2016 12:41:42 -0400 + +git-annex (6.20160419-1) unstable; urgency=high + + * Package 6.20160419-1 + + -- Richard Hartmann Sat, 30 Apr 2016 08:58:17 +0200 + +git-annex (6.20160419) unstable; urgency=medium + + * Fix bug that prevented resuming of uploads to encrypted special remotes + that used chunking. + * That bug could also expose the names of keys to such remotes, so it is a + minor security issue. + * Fix duplicate progress meter display when downloading from a git remote + over http with -J. + * reinject: When src file's content cannot be verified, leave it alone, + instead of deleting it. + * reinject: Added new mode which can reinject known files into the annex. + For example: git-annex reinject --known /mnt/backup/* + * calckey: New plumbing command, calculates the key that would be used + to refer to a file. + * Fix bug that prevented annex.sshcaching=false configuration from taking + effect when on a crippled filesystem. Thanks, divergentdave. + * git 2.9.0 is going to prevent git merge from merging in unrelated + branches. Since the webapp's pairing etc features often combine + together repositories with unrelated histories, work around + this behavior change when the assistant merges, by passing + --allow-unrelated-histories. Note though that this is not done + for git annex sync's merges, so it will follow git's default or + configured behavior. + * When git-annex is used with a git version older than 2.2.0, disable + support for adjusted branches, since GIT_COMMON_DIR is needed to update + them and was first added in that version of git. + * Avoid setting LOCPATH in linux standalone builds that are built with + a ghc that has been fixed to not hang when it cannot find locale files. + * Isolate test suite from global git config settings. + + -- Joey Hess Thu, 28 Apr 2016 09:31:14 -0400 + +git-annex (6.20160418-1) unstable; urgency=medium + + * Package 6.20160418-1 + + -- Richard Hartmann Thu, 21 Apr 2016 06:12:10 +0200 + +git-annex (6.20160418) unstable; urgency=medium + + * smudge: Print a warning when annex.thin is set, as git's smudge + interface does not allow honoring that configuration. + * webapp: When $HOME is a git repository, and has been initialized for + use by git-annex, opening the webapp went ahead and ran the assistant + there, annexing all files. Since this is almost certianly not + desirable, especially when the user is just opening the webapp from + a dekstop menu which happens to run it in $HOME, the webapp will now not + treat such a $HOME git repository as a git-annex repository. + * webapp: Update url to add gitlab.com ssh key. + * Fix bug in v6 mode that prevented treating unlocked executable files + as annexed. If you have such files, run git annex init --version=6 + to update the cache after upgrading to this version of git-annex. + * Preserve execute bits of unlocked files in v6 mode. + * fsck: Warn when core.sharedRepository is set and an annex object file's + write bit is not set and cannot be set due to the file being owned + by a different user. + * Fix hang when dropping content needs to lock the content on a + ssh remote, which occurred when the remote has git-annex version + 5.20151019 or newer. (The bug was in the client side; the remote + git-annex-shell does not need to be upgraded.) + + -- Joey Hess Mon, 18 Apr 2016 18:33:52 -0400 + +git-annex (6.20160412-1) unstable; urgency=medium + + * Package 6.20160412-1 + + -- Richard Hartmann Fri, 15 Apr 2016 01:14:02 +0200 + +git-annex (6.20160412) unstable; urgency=medium + + * adjust --unlock: Enters an adjusted branch in which all annexed files + are unlocked. The v6 equivilant of direct mode, but much cleaner! + * Upgrading a direct mode repository to v6 has changed to enter + an adjusted unlocked branch. This makes the direct mode to v6 upgrade + able to be performed in one clone of a repository without affecting + other clones, which can continue using v5 and direct mode. + * init --version=6: Automatically enter the adjusted unlocked branch + when filesystem doesn't support symlinks. + * ddar remote: fix ssh calls + Thanks, Robie Basak + * log: Display time with time zone. + * log --raw-date: Use to display seconds from unix epoch. + * v6: Close pointer file handles more quickly, to avoid problems on Windows. + * sync: Show output of git commit. + * annex.thin and annex.hardlink are now supported on Windows. + * unannex --fast now makes hard links on Windows. + * Fix bug in annex.largefiles mimetype= matching when git-annex + is run in a subdirectory of the repository. + * Fix build with ghc v7.11. Thanks, Gabor Greif. + + -- Joey Hess Tue, 12 Apr 2016 14:53:22 -0400 + +git-annex (6.20160318) unstable; urgency=medium + + * metadata: Added -r to remove all current values of a field. + * Fix data loss that can occur when annex.pidlock is set in a repository. + * Fix bug preventing moving files to/from a repository with annex.pidlock set. + * Fix shared lock file FD leak. + * Fix metadata hook behavior when multiple files are added at once. + Thanks, Klaus Ethgen. + * Added dependencies on haskell mountpoints and disk-free-space + libraries, removing FFI code from git-annex. + * dropkey: Add --batch and --json. + * Fix OSX dmg to include libraries needed by bundled gpg, + lost in last release. + * Always try to thaw content, even when annex.crippledfilesystem is set. + * Correct git-annex info to include unlocked files in v6 repository. + * Sped up git-annex add in direct mode and v6 by using + git hash-object --stdin-paths. + * Sped up git-annex merge by using git hash-object --stdin-paths. + + -- Joey Hess Fri, 18 Mar 2016 11:30:36 -0400 + +git-annex (6.20160229-1) unstable; urgency=medium + + * Package 6.20160229-1 + + -- Richard Hartmann Tue, 08 Mar 2016 00:12:28 +0100 + +git-annex (6.20160229) unstable; urgency=medium + + * Update perlmagick build dependency. Closes: #789225 + * Fix memory leak in last release, which affected commands like + git-annex status when a large non-annexed file is present in the work + tree. + * fsck: When the only copy of a file is in a dead repository, mention + the repository. + * info: Mention when run in a dead repository. + * Linux and OSX standalone builds put the bundled gpg last in PATH, + so any system gpg will be preferred over it. + * Avoid crashing when built with MagicMime support, but when the magic + database cannot be loaded. + * Include magic database in the linux and OSX standalone builds. + * Fix memory leak when hashing files, which triggered during fsck + when an external hash program was not used. + (This leak was introduced in version 6.20160114.) + * Support --metadata fieldnumber etc + to match ranges of numeric values. + * Similarly, support preferred content expressions like + metadata=fieldnumber + * The pre-commit-annex hook script that automatically extracts + metadata has been updated to also use exiftool. + Thanks, Klaus Ethgen. + + -- Joey Hess Mon, 29 Feb 2016 12:41:49 -0400 + +git-annex (6.20160217) unstable; urgency=medium + + * Support getting files from read-only repositories. + * checkpresentkey: Allow to be run without an explicit remote. + * checkpresentkey: Added --batch. + * Work around problem with concurrent-output when in a non-unicode locale + by avoiding use of it in such a locale. Instead -J will behave as if + it was built without concurrent-output support in this situation. + * Fix storing of filenames of v6 unlocked files when the filename is not + representable in the current locale. + * fsck: Detect and fix missing associated file mappings in v6 repositories. + * fsck: Populate unlocked files in v6 repositories whose content is + present in annex/objects but didn't reach the work tree. + * When initializing a v6 repo on a crippled filesystem, don't force it + into direct mode. + * Windows: Fix v6 unlocked files to actually work. + * add, addurl, import, importfeed: When in a v6 repository on a crippled + filesystem, add files unlocked. + * annex.addunlocked: New configuration setting, makes files always be + added unlocked. (v6 only) + * Improve format of v6 unlocked pointer files to support keys containing + slashes. + + -- Joey Hess Wed, 17 Feb 2016 14:48:51 -0400 + +git-annex (6.20160211) unstable; urgency=medium + + * annex.addsmallfiles: New option controlling what is done when + adding files not matching annex.largefiles. + * Fix reversion in lookupkey, contentlocation, and examinekey which + caused them to sometimes output side messages. + * webapp: Fix deletion of current repository directory. + * Added "nothing" to preferred content expression syntax. + * annex.largefiles can be configured in .gitattributes too; + this is particulary useful for v6 repositories, since the + .gitattributes configuration will apply in all clones of the + repository. + * Limit annex.largefiles parsing to the subset of preferred content + expressions that make sense in its context. So, not "standard" + or "lackingcopies", etc. + * annex.largefiles: Add support for mimetype=text/* etc, when git-annex + is linked with libmagic. + * matchexpression: Added --largefiles option to parse an annex.largefiles + expression. + * Brought back the dbus and xmpp build flags, so build from source can be + done without C libraries that may be hard to install. + * init: Fix bugs in submodule .git symlink fixup, that occurred when + initializing in a subdirectory of a submodule and a submodule of a + submodule. + * WebDAV: Set depth 1 in PROPFIND request, for better compatibility with + some servers. Thanks, wzhd. + * WebDAV: Remove a bogus trailing slash from the end of the url to the + temporary store location for a key. Thanks, wzhd. + * S3: Allow configuring with requeststyle=path to use path-style bucket + access instead of the default DNS-style access. + + -- Joey Hess Thu, 11 Feb 2016 11:42:19 -0400 + +git-annex (6.20160126) unstable; urgency=medium + + * Fix nasty reversion in the last release that broke sync --content's + handling of many preferred content expressions. + * whereis --json: Urls are now listed inside the remote that claims them, + rather than all together at the end. + * info, add, whereis, find: Support --batch mode. + * Force output to be line-buffered, even when it's not connected to the + terminal. This is particuarly important for commands with --batch + output, which was not always being flushed at an appropriate time. + * add, import: Support --json output. + * addurl --json: Include field for added key (unless the file was + added directly to git due to annex.largefiles configuration.) + (Also done by add --json and import --json) + * registerurl: Check if a remote claims the url, same as addurl does. + * Bug fix: Git config settings passed to git-annex -c did not always take + effect. + * assistant: Use udisks2 dbus events to detect when disks are mounted, + instead of relying on gnome/kde stuff that is not stable. + * Fix build with QuickCheck 2.8.2 + * matchexpression: New plumbing command to check if a preferred content + expression matches some data. + * Removed the webapp-secure build flag, rolling it into the webapp build + flag. + * Removed the quvi, tahoe, feed, and tfds build flags, adding + aeson feed and regex-tdfa to the core dependencies. + * Roll the dns build flag into the assistant build flag. + * Debian: Avoid building debug package, since gdb is not often useful + to debug haskell programs. + + -- Joey Hess Tue, 26 Jan 2016 14:57:42 -0400 + +git-annex (6.20160114) unstable; urgency=medium + + "hexapodia as the key insight" + + * Added v6 repository mode, but v5 is still the default for now. + * unlock, lock: In v6 mode, unlocking a file changes it from a symlink to a + pointer file, and this change can be committed to the git repository. + For details, see http://git-annex.branchable.com/tips/unlocked_files/ + * The upgrade to version 6 is not done fully automatically yet, because + upgrading a direct mode repository to version 6 will prevent old + versions of git-annex from working in other clones of that repository. + For details, see http://git-annex.branchable.com/upgrades/ + * init: --version parameter added to control which supported repository + version to use. + * init, upgrade: Configure .git/info/attributes to use git-annex + as a smudge filter. In v6 repository mode, this makes git add + add files to the annex in unlocked mode, unless overridden by + annex.largefiles configuration. + * assistant: In v6 mode, adds files in unlocked mode, so they can + continue to be modified. + * Added annex.thin setting, which makes unlocked files in v6 repositories + be hard linked to their content, instead of a copy. This saves disk + space but means any modification of an unlocked file will lose the local + (and possibly only) copy of the old version. + * Enable annex.thin by default on upgrade from direct mode to v6, since + direct mode made the same tradeoff. + * fix: Adjusts unlocked files as configured by annex.thin. + * persistent-sqlite is now a hard build dependency, since v6 repository + mode needs it. + + + * status: On crippled filesystems, was displaying M for all annexed files + that were present. Probably caused by a change to what git status + displays in this situation. Fixed by treating files git thinks are + modified the same as typechanged files. + * addurl: Added --batch and --with-files options. + * addurl: Support --json, particularly useful in --batch mode. + * addurl: Refuse to overwrite any existing, non-annexed file. + * Debian: Adjust build dependencies for webapp, DAV. Now available on + mips, mipsel, but temporarily removed armel since build is failing + there. + * info: Fix "backend usage" numbers, which were counting present keys + twice. + * info --json: Improve json for "backend usage", using a nested object + with fields for each backend instead of the previous weird nested lists. + This may break existing parsers of this json output, if there were any. + * whereis --json: Make url list be included in machine-parseable form. + * test: Added --keep-failures option. + * unused: Bug fix when a new file was added to the annex, and then + removed (but not git rmed). git still has the add staged in this case, + so the content should not be unused and was wrongly treated as such. + * migrate: Copy over metadata to new key. + * rekey: No longer copies over urls from the old to the new key. + It makes sense for migrate to do that, but not for this low-level + (and little used) plumbing command to. + * view: Fix crash in non-unicode capable locale when entering a view + of metadata containing a slash or backslash. + * When annex.http-headers is used to set the User-Agent header, avoid + sending User-Agent: git-annex + * Windows: Fix rsync cross-drive hack to work with msys2 rsync. + Thanks, Pieter Kitslaar. + + -- Joey Hess Thu, 14 Jan 2016 10:14:19 -0400 + +git-annex (5.20151208-1) unstable; urgency=medium + + * Package 5.20151208-1 + + -- Richard Hartmann Wed, 09 Dec 2015 13:07:41 +0100 + +git-annex (5.20151218) unstable; urgency=medium + + * Add S3 features to git-annex version output. + * webdav: When testing the WebDAV server, send a file with content. + The empty file it was sending tickled bugs in some php WebDAV server. + * fsck: Failed to honor annex.diskreserve when checking a remote. + * Debian: Build depend on concurrent-output. + * Fix insecure temporary permissions when git-annex repair is used in + in a corrupted git repository. + * Fix potential denial of service attack when creating temp dirs. + + -- Joey Hess Fri, 18 Dec 2015 12:09:33 -0400 + +git-annex (5.20151208) unstable; urgency=medium + + * Build with -j1 again to get reproducible build. + * Display progress meter in -J mode when copying from a local git repo, + to a local git repo, and from a remote git repo. + * Display progress meter in -J mode when downloading from the web. + * map: Improve display of git remotes with non-ssh urls, including http + and gcrypt. + * When core.sharedRepository is set, annex object files are not made mode + 444, since that prevents a user other than the file owner from locking + them. Instead, a mode such as 664 is used in this case. + * tahoe: Include tahoe capabilities in whereis display. + * import: Changed to honor annex.largefiles settings. + * addurl, importfeed: Changed to honor annex.largefiles settings, + when the content of the url is downloaded. (Not when using --fast or + --relaxed.) + * webapp: Fix bugs that could result in a relative path such as "." + being written to ~/.config/git-annex/autostart, and ignore any such + relative paths in the file. + This was a reversion caused by the relative path changes in 5.20150113. + * dropunused: Make more robust when trying to drop an object that has + already been dropped. + * Fix reversion in handling of long filenames, particularly when using + addurl/importfeed, which was introduced in the previous release. + + -- Joey Hess Tue, 08 Dec 2015 11:14:03 -0400 + +git-annex (5.20151116-1) unstable; urgency=medium + + * Package 5.20151116-1 + + -- Richard Hartmann Sat, 28 Nov 2015 10:19:20 +0100 + +git-annex (5.20151116) unstable; urgency=medium + + * Use concurrent-output library when configured with -fConcurrentOutput. + This allows nicely displayed messages when using the -J flag. + * Additional commands now support the -J flag: + fsck, drop, add, addurl, import + * import: Avoid very ugly error messages when the directory files + are imported to is not a directort, but perhaps an annexed file. + * Concurrent progress bars are now displayed when using -J with a command + that moves file contents around. + * Fix race that could result in an annexed file's symlink not being + created, when eg, running concurrent git-annex adds. + * add: Fix error recovery rollback to not move the injested file content + out of the annex back to the file, because other files may point to + that same content. Instead, copy the injected file content out to + recover. + * quvi may output utf-8 encoded data when the conifigured locale doesn't + support that; avoid crashing on such invalid encoding. + * runshell: Avoid failing when $HOME/.ssh does not exist and cannot be + created. + * Make the git-annex-standalone.deb prevent runshell from installing + wrappers into $HOME/.ssh + * Make git-annex-standalone.deb include the git-annex html documentation, + desktop file, and base completion file, same as the regular git-annex.deb. + * fsck: When fscking a dead repo, avoid incorrect "fixing location log" + message, and display a warning about it being dead, since it's unusual + to have access to a dead repo. + * assistant: Pass ssh-options through 3 more git pull/push calls + that were missed before. + * Added annex.pidlock and annex.pidlocktimeout configuration to support + filesystems where POSIX fcntl locks cannot be used. + * init: Automatically enable annex.pidlock when necessary. + + -- Joey Hess Mon, 16 Nov 2015 14:17:40 -0400 + +git-annex (5.20151102.1) unstable; urgency=medium + + * Avoid installing desktop file and program file if cabal install + git-annex is run as root, since that is not a systemwide install, + but to /root, and so generating a systemwide desktop file is not right. + * When cabal install is run with the desktop file location not writable, + display a warning, but continue successfully. + + -- Joey Hess Tue, 03 Nov 2015 12:08:38 -0400 + +git-annex (5.20151102) unstable; urgency=medium + + * Use statvfs on OSX. + * Symlink timestamp preservation code uses functions + from unix-2.7.0 when available, which should be more portable. + * enableremote: List uuids and descriptions of remotes that can be + enabled, and accept either the uuid or the description in leu if the + name. + * Catch up with current git behavior when both repo and repo.git exist; + it seems it now prefers repo in this case, although historically it may + have preferred repo.git. + * Fix failure to build with aws-0.13.0. + * When built with aws-0.13.0, the S3 special remote can be used to create + google nearline buckets, by setting storageclass=NEARLINE. + + -- Joey Hess Mon, 02 Nov 2015 12:41:20 -0400 + +git-annex (5.20151019-1) unstable; urgency=medium + + * Package 5.20151019-1 + + -- Richard Hartmann Mon, 19 Oct 2015 21:54:57 +0200 + +git-annex (5.20151019) unstable; urgency=medium + + * Fix a longstanding, but unlikely to occur bug, where dropping + a file from a remote could race with other drops of the same file, + and result in all copies of its content being lost. + * git-annex-shell: Added lockcontent command, to prevent dropping of + a key's content. This is necessary due to the above bugfix. + * In some cases, the above bugfix changes what git-annex allows you to + drop: + - When a file is present in several special remotes, + but not in any accessible git repositories, dropping it from one of + the special remotes will now fail. Instead, the file has to be + moved from one of the special remotes to the git repository, and can + then safely be dropped from the git repository. + - If a git remote has too old a version of git-annex-shell installed, + git-annex won't trust it to hold onto a copy of a file when dropping + that file from the local git repository. + * Changed drop ordering when using git annex sync --content or the + assistant, to drop from remotes first and from the local repo last. + This works better with the behavior changes to drop in many cases. + * Do verification of checksums of annex objects downloaded from remotes. + * When annex objects are received into git repositories from other git + repos, their checksums are verified then too. + * To get the old, faster, behavior of not verifying checksums, set + annex.verify=false, or remote..annex-verify=false. + * setkey, rekey: These commands also now verify that the provided file + matches the expected checksum of the key, unless annex.verify=false. + * reinject: Already verified content; this can now be disabled by + setting annex.verify=false. + * sync, merge, assistant: When git merge failed for a reason other + than a conflicted merge, such as a crippled filesystem not allowing + particular characters in filenames, git-annex would make a merge commit + that could omit such files or otherwise be bad. Fixed by aborting the + whole merge process when git merge fails for any reason other than a + merge conflict. + * Allow building with S3 disabled again. + * Ported disk free space checking code to work on Solaris. + * Windows webapp: Fix support for entering password when setting + up a ssh remote. + * copy --auto was checking the wrong repo's preferred content. + (--from was checking what --to should, and vice-versa.) + Fixed this bug, which was introduced in version 5.20150727. + * Avoid unncessary write to the location log when a file is unlocked + and then added back with unchanged content. + * S3: Fix support for using https. + * Avoid displaying network transport warning when a ssh remote + does not yet have an annex.uuid set. + * Debian: Add torrent library to build-depends as it's packaged now, + and stop recommending bittornado | bittorrent. + * Debian: Remove build dependency on transformers library, as it is now + included in ghc. + * Debian: Remove menu file, since a desktop file is provided and + lintian says there can be only one. + + -- Joey Hess Mon, 19 Oct 2015 13:59:01 -0400 + +git-annex (5.20150930-1) unstable; urgency=medium + + * Package 5.20150930-1 + + -- Richard Hartmann Sun, 18 Oct 2015 20:39:03 +0200 + +git-annex (5.20150930) unstable; urgency=medium + + * Added new linux standalone "ancient" build to support kernels + like 2.6.32. + * info: Don't allow use in a non-git-annex repository, since it + uses the git-annex branch and would create it if it were missing. + * assistant: When updating ~/.ssh/config, preserve any symlinks. + * webapp: Remove the "disable remote" feature from the UI. + * S3: When built with aws-0.13.0, supports using more storage classes. + In particular, storageclass=STANDARD_IA to use Amazon's + new Infrequently Accessed storage, and storageclass=NEARLINE + to use Google's NearLine storage. + * Improve ~/.ssh/config modification code to not add trailing spaces + to lines it cannot parse. + * Fix a crash at direct mode merge time when .git/index doesn't exist + yet. Triggered by eg, git-annex sync --no-commit in a fresh clone of + a repository. + * status: Show added but not yet committed files. + * Added stack.yaml to support easy builds from source with stack. + + -- Joey Hess Wed, 30 Sep 2015 14:31:52 -0400 + +git-annex (5.20150916-1) unstable; urgency=medium + + * Package 5.20150916-1 + + -- Richard Hartmann Thu, 17 Sep 2015 12:13:47 +0200 + +git-annex (5.20150916) unstable; urgency=medium + + * Fix Windows build to work with ghc 7.10. + * init: Fix reversion in detection of repo made with git clone --shared + * info: Support querying info of individual files in direct mode. + * unused: Fix reversion in 5.20150727 that broke parsing of the + --unused-refspec option. Thanks, Øyvind A. Holm. + * Make full option parsing be done when not in a git repo, so --help + can be displayed for commands that require a git repo, etc. + * fsck: Work around bug in persistent that broke display of + problematically encoded filenames on stderr when using --incremental. + * When gpg.program is configured, it's used to get the command to run + for gpg. Useful on systems that have only a gpg2 command or want to + use it instead of the gpg command. + * Windows: Switched to using git for Windows, rather than msysgit. + Using msysgit with git-annex is no longer supported. + * Windows: Even when the user neglects to tell the git installer to + add git to PATH, git-annex will still work from within the git bash + shell, and the webapp can be used too. + * sync: Add --no-commit, --no-pull, --no-push options to turn off parts of + the sync process, as well as supporting --commit, --pull, --push, and + --no-content options to specify the (current) default behavior. + * annex.hardlink extended to also try to use hard links when copying from + the repository to a remote. + * Improve bash completion, so it completes names of remotes and backends + in appropriate places. + * Special remotes configured with autoenable=true will be automatically + enabled when git-annex init is run. + * Fix bug in combination of preferred and required content settings. + When one was set to the empty string and the other set to some expression, + this bug caused all files to be wanted, instead of only files matching + the expression. + + -- Joey Hess Wed, 16 Sep 2015 10:31:24 -0400 + +git-annex (5.20150824-1) unstable; urgency=medium + + * Package 5.20150824-1 + + -- Richard Hartmann Sun, 13 Sep 2015 22:02:06 +0200 + +git-annex (5.20150824) unstable; urgency=medium + + * Sped up downloads of files from ssh remotes, reducing the + non-data-transfer overhead 6x. + * sync: Support --jobs + * sync --content: Avoid unnecessary second pull from remotes when + no file transfers are made. + * External special remotes can now be built that can be used in readonly + mode, where git-annex downloads content from the remote using regular + http. + * Added WHEREIS to external special remote protocol. + * importfeed --relaxed: Avoid hitting the urls of items in the feed. + * Fix reversion in init when ran as root, introduced in version 5.20150731. + * Reorder declaration to fix build with yesod-core > 1.4.13. + Thanks, Michael Alan Dorman. + * Fix building without quvi and without database. + Thanks, Ben Boeckel. + * Avoid building the assistant on the hurd, since an inotify equivalent + is not yet implemented in git-annex for the hurd. + * --debug log messages are now timestamped with fractional seconds. + * --debug is passed along to git-annex-shell when git-annex is in debug mode. + * Makefile: Pass LDFLAGS, CFLAGS, and CPPFLAGS through ghc and on to + ld, cc, and cpp. + * As a result of the Makefile changes, the Debian package is built + with various hardening options. Although their benefit to a largely + haskell program is unknown. + + -- Joey Hess Mon, 24 Aug 2015 14:11:05 -0700 + +git-annex (5.20150812-2) unstable; urgency=medium + + * Override lintian errors + + -- Richard Hartmann Sat, 15 Aug 2015 02:02:00 +0200 + +git-annex (5.20150812-1) unstable; urgency=medium + + * Package 5.20150812-1 + + -- Richard Hartmann Thu, 13 Aug 2015 20:47:58 +0200 + +git-annex (5.20150812) unstable; urgency=medium + + * Added support for SHA3 hashed keys (in 8 varieties), when git-annex is + built using the cryptonite library. + * metadata: Fix reversion introduced in 5.20150727 that caused recursive + display of metadata to not work. + * Windows: Fix bug that caused git-annex sync to fail due to missing + environment variable. + * Fix setting/setting/viewing metadata that contains unicode or other + special characters, when in a non-unicode locale. + * Simplify setup process for a ssh remote. Now it suffices to run git + remote add, followed by git-annex sync. Now the remote is automatically + initialized for use by git-annex, where before the git-annex branch had + to manually be pushed before using git-annex sync. Note that this + involved changes to git-annex-shell, so if the remote is using an old + version, the manual push is still needed. + * git-annex-shell: Don't let configlist auto-init repository when in + readonly mode. + * Perform a clean shutdown when --time-limit is reached. + This includes running queued git commands, and cleanup actions normally + run when a command is finished. + * fsck: Commit incremental fsck database when --time-limit is reached. + Previously, some of the last files fscked did not make it into the + database when using --time-limit. + * fsck: Commit incremental fsck database after every 1000 files + fscked, or every 5 minutes, whichever comes first. Previously, + commits were made every 1000 files fscked. + * Linux standalone: Work around problem that prevented it from working + properly if unpacked into a directory that contains ":" or ";" in its + name. + * proxy: Fix proxy git commit of non-annexed files in direct mode. + * proxy: If a non-proxied git command, such as git revert + would normally fail because of unstaged files in the work tree, + make the proxied command fail the same way. + * proxy: Fix removal of files deleted by the proxied command. + * proxy: Fix behavior when run in subdirectory of git repo. + * Improve Setup.hs file so that cabal copy --destdir works. + Thanks, Magnus Therning. + * Tighten dependency on optparse-applicative to 0.11.0. + * Added back debian/cabal-wrapper, since it still seems needed after all. + + -- Joey Hess Wed, 12 Aug 2015 11:14:58 -0400 + +git-annex (5.20150731-1) unstable; urgency=medium + + * Package 5.20150731 + + -- Richard Hartmann Tue, 04 Aug 2015 23:41:14 +0200 + +git-annex (5.20150731) unstable; urgency=medium + + * webapp: Support enabling known gitlab.com remotes. + * Fix rsync special remote to work when -Jn is used for concurrent + uploads. + * The last release accidentially removed a number of options from the + copy command. (-J, file matching options, etc). These have been added + back. + * init: Detect when the filesystem is crippled such that it ignores + attempts to remove the write bit from a file, and enable direct mode. + Seen with eg, NTFS fuse on linux. + * Fix man page installation by cabal install; all the new man pages are + now installed. + + -- Joey Hess Fri, 31 Jul 2015 11:34:36 -0400 + +git-annex (5.20150727-2) unstable; urgency=medium + + * Remove lintian from gbp.conf for now. + + -- Richard Hartmann Wed, 29 Jul 2015 21:05:31 +0200 + +git-annex (5.20150727-1) unstable; urgency=medium + + * Package 5.20150727 + + -- Richard Hartmann Wed, 29 Jul 2015 00:44:11 +0200 + +git-annex (5.20150727) unstable; urgency=medium + + * Fix bug that prevented uploads to remotes using new-style chunking + from resuming after the last successfully uploaded chunk. + * Switched option parsing to use optparse-applicative. This was a very large + and invasive change, and may have caused some minor behavior changes to + edge cases of option parsing. (For example, the metadata command no + longer accepts the combination of --get and --set, which never actually + worked.) + * Bash completion file is now included in the git-annex source tree, + and installed into Debian package (and any other packages built using make + install). This bash completion is generated by the option parser, so it + covers all commands, all options, and will never go out of date! + * As well as tab completing "git-annex" commands, "git annex" will also tab + complete. However, git's bash completion script needs a patch, + which I've submitted, for this to work prefectly. + * version --raw now works when run outside a git repository. + * assistant --startdelay now works when run outside a git repository. + * dead now accepts multiple --key options. + * addurl now accepts --prefix and --suffix options to adjust the + filenames used. + * sync --content: Fix bug that caused files to be uploaded to eg, + more archive remotes than wanted copies, only to later be dropped + to satisfy the preferred content settings. + * importfeed: Improve detection of known items whose url has changed, + and avoid adding redundant files. Where before this only looked at + permalinks in rss feeds, it now also looks at guids. + * importfeed: Look at not only permalinks, but now also guids + to identify previously downloaded files. + * Webapp: Now features easy setup of git-annex repositories on gitlab.com. + * Adjust debian build deps: The webapp can now build on arm64, s390x + and hurd-i386. WebDAV support is also available on those architectures. + * Debian package now maintained by Richard Hartmann. + * Support building without persistent database on for systems that + lack TH. This removes support for incremental fsck. + + -- Joey Hess Mon, 27 Jul 2015 12:24:49 -0400 + +git-annex (5.20150710-2) unstable; urgency=medium + + [ Richard Hartmann ] + * Joey Hess had fixed 786659. Closes: #786659 + + -- Richard Hartmann Thu, 23 Jul 2015 01:05:44 +0200 + +git-annex (5.20150710-1) unstable; urgency=medium + + [ Joey Hess ] + * add: Stage symlinks the same as git add would, even if they are not a + link to annexed content. + * sync: When annex.autocommit=false, avoid making any commit of local + changes, while still merging with remote to the extent possible. + * unused: --used-refspec can now be configured to look at refs in the + reflog. This provides a way to not consider old versions of files to be + unused after they have reached a specified age, when the old refs in + the reflog expire. + * log: Fix reversion introduced in version 5.20150528 that broke this command. + * assistant --autostart: First stop any daemons that are already running, + which might be left over from a previous login session and so unable to + use the ssh agent of a new login session. + * assistant: Fix local pairing to not include newline in ssh pubkey, + which is rejected on the other end for security reasons. + * assistant: Fix ANNEX_SHELL_DIR written to ~/.ssh/authorized_keys + in local pairing to be the absolute path to the repository, not "." + This was a reversion caused by the relative path changes in 5.20150113. + * Brought back the setkey plumbing command that was removed in 2011, since + we found a use case for it. Note that the command's syntax was changed + for consistency. + * bugfix: Pass --full-tree when using git ls-files to get a list of files + on the git-annex branch, so it works when run in a subdirectory. + This bug affected git-annex unused, and potentially also transitions + running code and other things. + * Support git's undocumented core.sharedRepository=2 value, which + is equivalent to "world", and is set when a repo was created using + git init --shared=world. + * When building on linux, pass --as-needed to linker to avoid linking + with unused shared libraries including libyaml. + * import: Fix failure of cross-device import on Windows. + * merge: Avoid creating the synced/master branch. + * Removed support for optparse-applicative versions older than 0.10. + + [ Richard Hartmann ] + * Switch to dpkg-source 3.0 (quilt) format, just so we have any non-native + format + * Switched Maintainer to Richard Hartmann + + -- Richard Hartmann Wed, 22 Jul 2015 23:49:46 +0200 + +git-annex (5.20150617) unstable; urgency=medium + + * Now supports git annex sync --all --content to sync all versions of all + files with all repos that want them. + * Added new "anything" preferred content expression, which matches all + versions of all files. + * Standard preferred content for client, backup, incremental backup, + and unwanted groups have been adjusted to work better when used + with git annex sync --all --content. + * fromkey, registerurl: Improve handling of urls that happen to also + be parsable as strange keys. + * sync, remotedaemon: Pass configured ssh-options even when + annex.sshcaching is disabled. + * assistant: Consume systemd-networkd dbus events to learn about + changes to network connections, as was already done with + network-manager and wicd. + Thanks to Sebastian Reuße for the patches. + * get --incomplete: New option to resume any interrupted downloads. + * dead --key: Can be used to mark a key as dead. + * fsck: Ignore keys that are known to be dead when running in + --all/--unused/--key mode or a in a bare repo. Closes: #753888 + Otherwise, still reports files with lost contents, even if the content + is dead. + * S3: Special remotes can be configured with public=yes to allow + the public to access the bucket's content. + * S3: Publically accessible buckets can be used without creds. + * import --clean-duplicates: Fix bug that didn't count local or trusted + repo's copy of a file as one of the necessary copies to allow removing + it from the import location. + * tahoe: Use ~/.tahoe-git-annex/ rather than ~/.tahoe/git-annex/ + when setting up a tahoe special remote to avoid old versions of + tahoe create-client choking. + * Fix bug that prevented enumerating locally present objects in repos + tuned with annex.tune.objecthash1=true. + Fixes: unused, object count in info, unannex. + * Improve url parsing to handle some urls containing illegal [] + characters in their paths. + * info: Added json output for "backend usage", "numcopies stats", + "repositories containing these files", and "transfers in progress". + * Fix incremental backup standard preferred content expression to match + its documentation, which says it does not want files that have reached + a backup repository. + * Increased the default annex.bloomaccuracy from 1000 to 10000000. + This makes git annex unused use up to 16 mb more memory than it did + before, but the massive increase in accuracy makes this worthwhile + for all but the smallest systems. + * Build documentation with deterministic=1 for reproducible builds. + (A new ikiwiki feature.) Closes: #785736 + * Re-remove dependency on obsolete hamlet package. Closes: #786659 + * debian/cabal-wrapper: Removed this hack which should not be needed anymore. + + -- Joey Hess Wed, 17 Jun 2015 13:50:35 -0400 + +git-annex (5.20150528) unstable; urgency=medium + + * fromkey, registerurl: Allow urls to be specified instead of keys, + and generate URL keys. + * Linux standalone, OSX app: Improve runshell script to always quote + shell vars, so that it will work when eg, untarred into a directory + path with spaces in its name. + * Revert removal dependency on obsolete hamlet package, since the + autobuilders are not ready for this change yet and it prevented them + from building the webapp. Reopens: #786659 + * fsck: When checksumming a file fails due to a hardware fault, + the file is now moved to the bad directory, and the fsck proceeds. + Before, the fsck immediately failed. + * Linux standalone: The webapp was not built in the previous release, + this release fixes that oversight. + + -- Joey Hess Thu, 28 May 2015 10:48:03 -0400 + +git-annex (5.20150522) unstable; urgency=medium + + * import: Refuse to import files that are within the work tree, as that + does not make sense and could cause data loss. + * drop: Now supports --all, --unused, and --key. + * drop: Now defaults to --all when run in a bare repository. + (Previously, did nothing when run in a bare repository.) + * get, move, copy, mirror: Concurrent transfers are now supported! + For example: git-annex get -J10 + However, progress bars are not yet displayed for concurrent transfers, + pending an updated version of the ascii-progress library. + * --quiet now makes progress output by rsync, wget, etc be quiet too. + * Take space that will be used by other running downloads into account when + checking annex.diskreserve. + * Avoid accumulating transfer failure log files unless the assistant is + being used. + * Fix an unlikely race that could result in two transfers of the same key + running at once. + * Stale transfer lock and info files will be cleaned up automatically + when get/unused/info commands are run. + * unused: Add --used-refspec option and annex.used-refspec, which can + specify a set of refs to consider used, rather than the default of + considering all refs used. + * webapp: Fix zombie xdg-open process left when opening file browser. + Closes: #785498 + * Safer posix fctnl locking implementation, using lock pools and STM. + * Build documentation with TZ=UTC for reproducible builds. See #785736. + * OSX: Corrected the location of trustedkeys.gpg, so the built-in + upgrade code will find it. Fixes OSX upgrade going forward, but + older versions won't upgrade themselves due to this problem. + * Remove dependency on obsolete hamlet package. Closes: #786659 + + -- Joey Hess Fri, 22 May 2015 14:20:18 -0400 + +git-annex (5.20150508.1) unstable; urgency=medium + + * Now builds cleanly using ghc 7.10 (as well as ghc back to 7.6). + * Imrovements to the git-annex-standalone.deb build process. + (Thanks, Yaroslav Halchenko) + + -- Joey Hess Mon, 11 May 2015 12:08:58 -0400 + +git-annex (5.20150508) unstable; urgency=medium + + * Improve behavior when a git-annex command is told to operate + on a file that doesn't exist. It will now continue to other + files specified after that on the command line, and only error out at + the end. + * S3: Enable debug logging when annex.debug or --debug is set. + * S3: git annex info will show additional information about a S3 remote + (endpoint, port, storage class) + * S3: Let git annex enableremote be used, without trying to recreate + a bucket that should already exist. + * S3: Fix incompatability with bucket names used by hS3; the aws library + cannot handle upper-case bucket names. git-annex now converts them to + lower case automatically. + * import: Check for gitignored files before moving them into the tree. + (Needs git 1.8.4 or newer.) + * import: Don't stop entire import when one file fails due to being + gitignored or conflicting with something in the work tree. + * import: Before removing a duplicate file in --deduplicate or + --clean-duplicates mode, verify that enough copies of its content still + exist. + * Improve integration with KDE's file manager to work with dolphin + version 14.12.3 while still being compatable with 4.14.2. + Thanks, silvio. + * assistant: Added --autostop to complement --autostart. + * Work around wget bug #784348 which could cause it to clobber git-annex + symlinks when downloading from ftp. + * Support checking ftp urls for file presence. + * Fix bogus failure of fsck --fast. + * fsck: Ignore error recording the fsck in the activity log, + which can happen when running fsck in a read-only repository. + Closes: #698559 + (fsck can still need to write to the repository if it find problems, + but a successful fsck can be done read-only) + * Improve quvi 0.4 output parsing to handle cases wher there is no known + filename extension. This is currently the case when using quvi with + youtube. In this case, the extension ".m" will be used. + * Dropped support for older versions of yesod, warp, and dbus than the ones + in Debian Jessie. + * Switch from the obsolete dataenc library for base64 encoding to sandi. + (Thanks, Magnus Therning) + * Debian's ghc now supports TH on arm! Adjust build dependencies + to build the webapp on arm, and enable DAV support on arm. \o/ + * Adjust some other arch specific build dependencies that are now + available on more architectures in Devian unstable. + * Windows: Remove cygwin ssh, the newer version of which has stopped + honoring the setting of HOME. Instead, copy msysgit's ssh into PATH. + Note that setting up a remote ssh server using password authentication + is known to be broken in this release on Windows. + * Windows: Roll back to an older version of rsync from cygwin. + The newer version has some dependency on a newer ssh from cygwin. + + -- Joey Hess Fri, 08 May 2015 13:42:30 -0400 + +git-annex (5.20150420) unstable; urgency=medium + + * Fix activity log parsing, which caused the log to not retain + activity from other uuids. + * Union merge could fall over if there was a file in the repository + with the same name as a git ref. Now fixed. + * info dir: Added information about repositories that + contain files in the specified directory. + * info: Added --bytes option. + * bittorrent: Fix handling of magnet links. + * When a key's size is unknown, still check the annex.diskreserve, + and avoid getting content if the disk is too full. + * Fix fsck --from a git remote in a local directory, and from + a directory special remote. + This was a reversion caused by the relative path changes in 5.20150113. + * fsck --from remote: When bad content is found in the remote, + and the local repo does not have a copy of the content, preserve + the bad content in .git/annex/bad/ to avoid further data loss. + * fsck --from remote: Avoid downloading a key if it would go over + the annex.diskreserve limit. + * required: New command, like wanted, but for required content. + * Removed dependency on haskell SHA library, + instead using cryptohash >= 0.11.0. + * Make repo init more robust. + * New debian/rules build-standalone target, which generates a + git-annex-standalone.deb that should work on many old Debian etc + systems. Thanks, Yaroslav Halchenko. + * Windows: Renamed start menu file to avoid loop in some versions + of Windows where the menu file is treated as a git-annex program. + * Windows: Fixed support of remotes on other drives. + (A reversion introduced in version 5.20150113.) + * Windows: Bundled versions of rsync, wget, ssh, and gpg from + cygwin all updated. Thanks, Yury V. Zaytsev. + + -- Joey Hess Mon, 20 Apr 2015 14:44:04 -0400 + +git-annex (5.20150409) unstable; urgency=medium + + * This fixes a bug in the assistant introduced by the literal pathspec + changes in version 5.20150406. + * --quiet now suppresses progress displays from eg, rsync. + (Second time's the charm..) + * fromkey, registerurl: When reading from stdin, allow the + filename and url, respectively, to contain whitespace. + * add: If annex.largefiles is set and does not match a file that's being + added, the file will be checked into git rather than being added to the + annex. Previously, git annex add skipped over such files; this new + behavior is more useful in direct mode. + * proxy: Made it work when run in a new repository before initial + commit. + * info: Display repository mode: bare when in a bare (non-direct mode) + repo. + * importfeed: Fix feed download when curl is used. + * importfeed: Error out when passed a non-url. + * webapp: When adding another local repository, and combining it + with the current repository, the new repository's remote path + was set to "." rather than the path to the current repository. + This was a reversion caused by the relative path changes in 5.20150113. + * contentlocationn: New plumbing command. + + -- Joey Hess Thu, 09 Apr 2015 15:06:38 -0400 + +git-annex (5.20150406.1) unstable; urgency=medium + + * Fixes a bug in the last release that caused rsync and possibly + other commands to hang at the end of a file transfer. + (--quiet is back to not blocking progress displays until + that code can be fixed properly.) + + -- Joey Hess Mon, 06 Apr 2015 17:13:13 -0400 + +git-annex (5.20150406) unstable; urgency=medium + + * Prevent git-ls-files from double-expanding wildcards when an + unexpanded wildcard is passed to a git-annex command like add or find. + * Fix make build target. Thanks, Justin Geibel. + * Fix GETURLS in external special remote protocol to strip + downloader prefix from logged url info before checking for the + specified prefix. + * importfeed: Avoid downloading a redundant item from a feed whose + permalink has been seen before, even when the url has changed. + * importfeed: Always store itemid in metadata; before this was only + done when annex.genmetadata was set. + * Relax debian package dependencies to git >= 1:1.8.1 rather + than needing >= 1:2.0. + * test: Fix --list-tests + * addurl --file: When used with a special remote that claims + urls and checks their contents, don't override the user's provided + filename with filenames that the special remote suggests. Also, + don't allow adding the url if the special remote says it contains + multiple files. + * import: --deduplicate and --cleanduplicates now output the keys + corresponding to duplicated files they process. + * expire: New command, for expiring inactive repositories. + * fsck: Record fsck activity for use by expire command. + * Fix truncation of parameters that could occur when using xargs git-annex. + * Significantly sped up processing of large numbers of directories + passed to a single git-annex command. + * version: Add --raw + * init: Improve fifo test to detect NFS systems that support fifos + but not well enough for sshcaching. + * --quiet now suppresses progress displays from eg, rsync. + (The option already suppressed git-annex's own built-in progress + displays.) + + -- Joey Hess Mon, 06 Apr 2015 12:48:48 -0400 + +git-annex (5.20150327) unstable; urgency=medium + + * readpresentkey: New plumbing command for checking location log. + * checkpresentkey: New plumbing command to check if a key can be verified + to be present on a remote. + * Added a post-update-annex hook, which is run after the git-annex branch + is updated. Needed for git update-server-info. + * migrate: --force will force migration of keys already using the + destination backend. Useful in rare cases. + * Man pages for individual commands now available, and can be + opened using "git annex help " + * --auto is no longer a global option; only get, drop, and copy + accept it. (Not a behavior change unless you were passing it to a + command that ignored it.) + * Improve error message when --in @date is used and there is no + reflog for the git-annex branch. + * assistant: Committing a whole lot of files at once could overflow + command-line length limits and cause the commit to fail. This + only happened when using the assistant in an indirect mode repository. + * Work around curl bug when asked to download an empty url to a file. + * Fix bug introduced in the last release that broke git-annex sync + when git-annex was installed from the standalone tarball. + + -- Joey Hess Fri, 27 Mar 2015 13:10:59 -0400 + +git-annex (5.20150317) unstable; urgency=medium + + * fsck: Incremental fsck uses sqlite to store its records, instead + of abusing the sticky bit. Existing sticky bits are ignored; + incremental fscks started by old versions won't be resumed by + this version. + * fsck: Multiple incremental fscks of different repos (including remotes) + can now be running at the same time in the same repo without it + getting confused about which files have been checked for which remotes. + * unannex: Refuse to unannex when repo is too new to have a HEAD, + since in this case there must be staged changes in the index + (if there is anything to unannex), and the unannex code path + needs to run with a clean index. + * Linux standalone: Set LOCPATH=/dev/null to work around + https://ghc.haskell.org/trac/ghc/ticket/7695 + This prevents localization from working, but git-annex + is not localized anyway. + * sync: As well as the synced/git-annex push, attempt a + git-annex:git-annex push, as long as the remote branch + is an ancestor of the local branch, to better support bare git repos. + (This used to be done, but it forgot to do it since version 4.20130909.) + * When re-execing git-annex, use current program location, rather than + ~/.config/git-annex/program, when possible. + * Submodules are now supported by git-annex! + * metadata: Fix encoding problem that led to mojibake when storing + metadata strings that contained both unicode characters and a space + (or '!') character. + * Also potentially fixes encoding problem when embedding credentials + that contain unicode characters. + * sync: Fix committing when in a direct mode repo that has no HEAD ref. + (For example, a newly checked out git submodule.) + * Added SETURIPRESENT and SETURIMISSING to external special remote protocol, + useful for things like ipfs that don't use regular urls. + * addurl: Added --raw option, which bypasses special handling of quvi, + bittorrent etc urls. + * git-annex-shell: Improve error message when the specified repository + doesn't exist or git config fails for some reason. + * fromkey --force: Skip test that the key has its content in the annex. + * fromkey: Add stdin mode. + * registerurl: New plumbing command for mass-adding urls to keys. + * remotedaemon: Fixed support for notifications of changes to gcrypt + remotes, which was never tested and didn't quite work before. + + -- Joey Hess Tue, 17 Mar 2015 13:02:36 -0400 + +git-annex (5.20150219) unstable; urgency=medium + + * glacier: Detect when the glacier command in PATH is the wrong one, + from boto, rather than from glacier-cli, and refuse to use it, + since the boto program fails to fail when passed + parameters it does not understand. + * groupwanted: New command to set the groupwanted preferred content + expression. + * import: Support file matching options such as --exclude, --include, + --smallerthan, --largerthan + * The file matching options are now only accepted by commands that + can actually use them, instead of by all commands. + * import: Avoid checksumming file twice when run in the default + or --duplicate mode. + * Windows: Fix bug in dropping an annexed file, which + caused a symlink to be staged that contained backslashes. + * webapp: Fix reversion in opening webapp when starting it manually + inside a repository. + * assistant: Improve sanity check for control characters when pairing. + * Improve race recovery code when committing to git-annex branch. + * addurl: Avoid crash if quvi is not installed, when git-annex was + built with process-1.2 + * bittorrent: Fix mojibake introduced in parsing arai2c progress output. + * fsck --from: If a download from a remote fails, propagate the failure. + * metadata: When setting metadata, do not recurse into directories by + default, since that can be surprising behavior and difficult to recover + from. The old behavior is available by using --force. + * sync, assistant: Include repository name in head branch commit message. + * The ssh-options git config is now used by gcrypt, rsync, and ddar + special remotes that use ssh as a transport. + * sync, assistant: Use the ssh-options git config when doing git pull + and push. + * remotedaemon: Use the ssh-options git config. + * Linux standalone: Improved process names of linker shimmed programs. + + -- Joey Hess Thu, 19 Feb 2015 14:16:03 -0400 + +git-annex (5.20150205) unstable; urgency=medium + + * info: Can now display info about a given uuid. + * Added to remote/uuid info: Count of the number of keys present + on the remote, and their size. This is rather expensive to calculate, + so comes last and --fast will disable it. + * info remote: Include the date of the last sync with the remote. + * sync: Added --message/-m option like git commit. + * remotedaemon: Fix problem that could prevent ssh connections being + made after two LOSTNET messages were received in a row (perhaps due to + two different network interfaces being brought down). + * Fix build failure when wget is not installed. + * Fix wording of message displayed when unable to get a file that + is available in untrusted repositories. + * addurl: When a Content-Disposition header suggests a filename to use, + addurl will consider using it, if it's reasonable and doesn't conflict + with an existing file. (--file overrides this) + * Fix default repository description created by git annex init, + which got broken by the relative path changes in the last release. + * init: Repository tuning parameters can now be passed when initializing a + repository for the first time. For details, see + http://git-annex.branchable.com/tuning/ + * merge: Refuse to merge changes from a git-annex branch of a repo + that has been tuned in incompatible ways. + * Support annex.tune.objecthash1, annex.tune.objecthashlower, and + annex.tune.branchhash1. + * Remove support for building without cryptohash. + * Added MD5 and MD5E backends. + * assistant: Fix local pairing when ssh pubkey comment contains spaces. + * Avoid using fileSize which maxes out at just 2 gb on Windows. + Instead, use hFileSize, which doesn't have a bounded size. + Fixes support for files > 2 gb on Windows. + * Windows: Fix running of the pre-commit-annex hook. + * Windows: Fix S3 special remote; need to call withSocketsDo. Thanks, Trent. + + -- Joey Hess Thu, 05 Feb 2015 14:08:33 -0400 + +git-annex (5.20150113) unstable; urgency=medium + + * unlock: Don't allow unlocking files that have never been committed to git + before, to avoid an intractable problem that prevents the pre-commit + hook from telling if such a file is intended to be an annexed file or not. + * Avoid re-checksumming when migrating from hash to hashE backend. + Closes: #774494 + * Fix build with process 1.2.1.0. + * Android: Provide a version built with -fPIE -pie to support Android 5.0. + * sync: Fix an edge case where syncing in a bare repository would try to + merge and so fail. + * Check git version at runtime, rather than assuming it will be the same + as the git version used at build time when running git-checkattr and + git-branch remove. + * Switch to using relative paths to the git repository. + - This allows the git repository to be moved while git-annex is running in + it, with fewer problems. + - On Windows, this avoids some of the problems with the absurdly small + MAX_PATH of 260 bytes. In particular, git-annex repositories should + work in deeper/longer directory structures than before. + * Generate shorter keys for WORM and URL, avoiding keys that are longer + than used for SHA256, so as to not break on systems like Windows that + have very small maximum path length limits. + * Bugfix: A file named HEAD in the work tree could confuse some git commands + run by git-annex. + + -- Joey Hess Tue, 13 Jan 2015 12:10:08 -0400 + +git-annex (5.20141231) unstable; urgency=medium + + * vicfg: Avoid crashing on badly encoded config data. + * Work around statfs() overflow on some XFS systems. + * sync: Now supports remote groups, the same way git remote update does. + * setpresentkey: A new plumbing-level command. + * Run shutdown cleanup actions even if there were failures processing + the command. Among other fixes, this means that addurl will stage + added files even if adding one of the urls fails. + * bittorrent: Fix locking problem when using addurl file:// + * Windows: Fix local rsync filepath munging (fixes 26 test suite failures). + * Windows: Got the rsync special remote working. + * Windows: Fix handling of views of filenames containing '%' + * OSX: Switched away from deprecated statfs64 interface. + + -- Joey Hess Wed, 31 Dec 2014 15:15:46 -0400 + +git-annex (5.20141219) unstable; urgency=medium + + * Webapp: When adding a new box.com remote, use the new style chunking. + Thanks, Jon Ander Peñalba. + * External special remote protocol now includes commands for setting + and getting the urls associated with a key. + * Urls can now be claimed by remotes. This will allow creating, + for example, a external special remote that handles magnet: and + *.torrent urls. + * Use wget -q --show-progress for less verbose wget output, + when built with wget 1.16. + * Added bittorrent special remote. + * addurl behavior change: When downloading an url ending in .torrent, + it will download files from bittorrent, instead of the old behavior + of adding the torrent file to the repository. + * Added Recommends on aria2. + * When possible, build with the haskell torrent library for parsing + torrent files. As a fallback, can instead use btshowmetainfo from + bittornado | bittorrent. + * Fix build with -f-S3. + + -- Joey Hess Fri, 19 Dec 2014 16:53:26 -0400 + +git-annex (5.20141203) unstable; urgency=medium + + * proxy: New command for direct mode repositories, allows bypassing + the direct mode guard in a safe way to do all sorts of things + including git revert, git mv, git checkout ... + * undo: New command to undo the most recent change to a file + or to the contents of a directory. + * Add undo action to nautilus and konqueror integration. + * diffdriver: New git-annex command, to make git external diff drivers + work with annexed files. + * pre-commit: Block partial commit of unlocked annexed file, since + that left a typechange staged in index due to some infelicity of git's + handling of partial commits. + * Work around behavior change in lsof 4.88's -F output format. + * S3: Switched to using the haskell aws library. + * S3: No longer buffers entire files in memory when uploading without + chunking. + * S3: When built with a new enough version of the haskell aws library, + supports doing multipart uploads, in order to store extremely large + files in S3 when not using chunking. + * Don't show "(gpg)" when decrypting the remote encryption cipher, + since this could be taken to read that's the only time git-annex + runs gpg, which is not the case. + * Debian package is now maintained by Gergely Nagy. + * Windows: Remove Alt+A keyboard shortcut, which turns out to have scope + outside the menus. + * Windows: Install ssh and other bundled programs to Git/cmd, + instead of Git/bin, since the latter is not in the default msysgit PATH. + + -- Joey Hess Wed, 03 Dec 2014 15:16:52 -0400 + +git-annex (5.20141125) unstable; urgency=medium + + * Remove fixup code for bad bare repositories created by + versions 5.20131118 through 5.20131127. That fixup code would + accidentially fire when --git-dir was incorrectly + pointed at the working tree of a git-annex repository, + possibly resulting in data loss. Closes: #768093 + * Windows: Fix crash when user.name is not set in git config. + + -- Joey Hess Wed, 05 Nov 2014 11:41:51 -0400 + +git-annex (5.20141024) unstable; urgency=medium + + * vicfg: Deleting configurations now resets to the default, where + before it has no effect. + * Remove hurd stuff from cabal file, since hackage currently rejects + it, and the test suite fails on hurd. + * initremote: Don't allow creating a special remote that has the same + name as an existing git remote. + * Windows: Use haskell setenv library to clean up several ugly workarounds + for inability to manipulate the environment on windows. This includes + making git-annex not re-exec itself on start on windows, and making the + test suite on Windows run tests without forking. + * glacier: Fix pipe setup when calling glacier-cli to retrieve an object. + * info: When run on a single annexed file, displays some info about the + file, including its key and size. + * info: When passed the name or uuid of a remote, displays info about that + remote. Remotes that support encryption, chunking, or embedded + creds will include that in their info. + * enableremote: When the remote has creds, update the local creds cache + file. Before, the old version of the creds could be left there, and + would continue to be used. + + -- Joey Hess Fri, 24 Oct 2014 13:03:29 -0400 + +git-annex (5.20141013) unstable; urgency=medium + + * Adjust cabal file to support building w/o assistant on the hurd. + * Support building with yesod 1.4. + * S3: Fix embedcreds=yes handling for the Internet Archive. + * map: Handle .git prefixed remote repos. Closes: #614759 + * repair: Prevent auto gc from happening when fetching from a remote. + + -- Joey Hess Mon, 13 Oct 2014 10:13:06 -0400 + +git-annex (5.20140927) unstable; urgency=medium + + * Really depend (not just build-depend) on new enough git for --no-gpg-sign + to work. Closes: #763057 + * Add temporary workaround for bug #763078 which broke building on armel + and armhf. + + -- Joey Hess Sat, 27 Sep 2014 14:25:09 -0400 + +git-annex (5.20140926) unstable; urgency=high + + * Depend on new enough git for --no-gpg-sign to work. Closes: #762446 + * Work around failure to build on mips by using cabal, not Setup, + to build in debian/rules. + + -- Joey Hess Fri, 26 Sep 2014 15:09:02 -0400 + +git-annex (5.20140919) unstable; urgency=high + + * Security fix for S3 and glacier when using embedcreds=yes with + encryption=pubkey or encryption=hybrid. CVE-2014-6274 + The creds embedded in the git repo were *not* encrypted. + git-annex enableremote will warn when used on a remote that has + this problem. For details, see: + https://git-annex.branchable.com/upgrades/insecure_embedded_creds/ + * assistant: Detect when repository has been deleted or moved, and + automatically shut down the assistant. Closes: #761261 + * Windows: Avoid crashing trying to list gpg secret keys, for gcrypt + which is not yet supported on Windows. + * WebDav: Fix enableremote crash when the remote already exists. + (Bug introduced in version 5.20140817.) + * add: In direct mode, adding an annex symlink will check it into git, + as was already done in indirect mode. + + -- Joey Hess Fri, 19 Sep 2014 12:53:42 -0400 + +git-annex (5.20140915) unstable; urgency=medium + + * New annex.hardlink setting. Closes: #758593 + * init: Automatically detect when a repository was cloned with --shared, + and set annex.hardlink=true, as well as marking the repository as + untrusted. + * Fix parsing of ipv6 address in git remote address when it was not + formatted as an url. + * The annex-rsync-transport configuration is now also used when checking + if a key is present on a rsync remote, and when dropping a key from + the remote. + * Promote file not found warning message to an error. + * Fix transfer lock file FD leak that could occur when two separate + git-annex processes were both working to perform the same set of + transfers. + * sync: Ensure that pending changes to git-annex branch are committed + before push when in direct mode. (Fixing a very minor reversion.) + * WORM backend: Switched to include the relative path to the file inside + the repository, rather than just the file's base name. Note that if you're + relying on such things to keep files separate with WORM, you should really + be using a better backend. + * Rather than crashing when there's a problem with the requested bloomfilter + capacity/accuracy, fall back to a reasonable default bloom filter size. + * Fix build with optparse-applicative 0.10. Closes: #761484 + * webapp: Fixed visual glitch in xmpp pairing that was reported live by a + user who tracked me down in front of a coffee cart in Portland. + (New bug reporting method of choice?) + + -- Joey Hess Mon, 15 Sep 2014 10:45:00 -0400 + +git-annex (5.20140831) unstable; urgency=medium + + * Make --help work when not in a git repository. Closes: #758592 + * Ensure that all lock fds are close-on-exec, fixing various problems with + them being inherited by child processes such as git commands. + * When accessing a local remote, shut down git-cat-file processes + afterwards, to ensure that remotes on removable media can be unmounted. + Closes: #758630 + * Fix handing of autocorrection when running outside a git repository. + * Fix stub git-annex test support when built without tasty. + * Do not preserve permissions and acls when copying files from + one local git repository to another. Timestamps are still preserved + as long as cp --preserve=timestamps is supported. Closes: #729757 + + -- Joey Hess Sun, 31 Aug 2014 12:30:08 -0700 + +git-annex (5.20140817) unstable; urgency=medium + + * New chunk= option to chunk files stored in special remotes. + Supported by: directory, S3, webdav, gcrypt, rsync, and all external + and hook special remotes. + * Partially transferred files are automatically resumed when using + chunked remotes! + * The old chunksize= option is deprecated. Do not use for new remotes. + * Legacy code for directory remotes using the old chunksize= option + will keep them working, but more slowly than before. + * webapp: Automatically install Konqueror integration scripts + to get and drop files. + * repair: Removing bad objects could leave fsck finding no more + unreachable objects, but some branches no longer accessible. + Fix this, including support for fixing up repositories that + were incompletely repaired before. + * Fix cost calculation for non-encrypted remotes. + * Display exception message when a transfer fails due to an exception. + * WebDAV: Sped up by avoiding making multiple http connections + when storing a file. + * WebDAV: Avoid buffering whole file in memory when uploading and + downloading. + * WebDAV: Dropped support for DAV before 1.0. + * testremote: New command to test uploads/downloads to a remote. + * Dropping an object from a bup special remote now deletes the git branch + for the object, although of course the object's content cannot be deleted + due to the nature of bup. + * unlock: Better error handling; continue past files that are not available + or cannot be unlocked due to disk space, and try all specified files. + * Windows: Now uses actual inode equivilants in new direct mode + repositories, for safer detection of eg, renaming of files with the same + size and mtime. + * direct: Fix ugly warning messages. + * WORM backend: When adding a file in a subdirectory, avoid including the + subdirectory in the key name. + * S3, Glacier, WebDAV: Fix bug that prevented accessing the creds + when the repository was configured with encryption=shared embedcreds=yes. + * direct: Avoid leaving file content in misctemp if interrupted. + * git-annex-shell sendkey: Don't fail if a remote asks for a key to be sent + that already has a transfer lock file indicating it's being sent to that + remote. The remote may have moved between networks, or reconnected. + * Switched from the old haskell HTTP library to http-conduit. + + -- Joey Hess Sun, 17 Aug 2014 10:30:58 -0400 + +git-annex (5.20140717) unstable; urgency=high + + * Fix minor FD leak in journal code. Closes: #754608 + * direct: Fix handling of case where a work tree subdirectory cannot + be written to due to permissions. + * migrate: Avoid re-checksumming when migrating from hashE to hash backend. + * uninit: Avoid failing final removal in some direct mode repositories + due to file modes. + * S3: Deal with AWS ACL configurations that do not allow creating or + checking the location of a bucket, but only reading and writing content to + it. + * resolvemerge: New plumbing command that runs the automatic merge conflict + resolver. + * Deal with change in git 2.0 that made indirect mode merge conflict + resolution leave behind old files. + * sync: Fix git sync with local git remotes even when they don't have an + annex.uuid set. (The assistant already did so.) + * Set gcrypt-publish-participants when setting up a gcrypt repository, + to avoid unncessary passphrase prompts. + This is a security/usability tradeoff. To avoid exposing the gpg key + ids who can decrypt the repository, users can unset + gcrypt-publish-participants. + * Install nautilus hooks even when ~/.local/share/nautilus/ does not yet + exist, since it is not automatically created for Gnome 3 users. + * Windows: Move .vbs files out of git\bin, to avoid that being in the + PATH, which caused some weird breakage. (Thanks, divB) + * Windows: Fix locking issue that prevented the webapp starting + (since 5.20140707). + + -- Joey Hess Thu, 17 Jul 2014 11:27:25 -0400 + +git-annex (5.20140709) unstable; urgency=medium + + * Fix race in direct mode merge code that could cause all files in the + repository to be removed. It should be able to recover repositories + experiencing this bug without data loss. See: + http://git-annex.branchable.com/bugs/bad_merge_commit_deleting_all_files/ + * Fix git version that supported --no-gpg-sign. + * Fix bug in automatic merge conflict resolution, when one side is an + annexed symlink, and the other side is a non-annexed symlink. + * Really fix bug that caused the assistant to make many unncessary + empty merge commits. + + -- Joey Hess Wed, 09 Jul 2014 15:28:03 -0400 + +git-annex (5.20140707) unstable; urgency=medium + + * assistant: Fix bug, introduced in last release, that caused the assistant + to make many unncessary empty merge commits. + * assistant: Fix one-way assistant->assistant sync in direct mode. + * Fix bug in annex.queuesize calculation that caused much more + queue flushing than necessary. + * importfeed: When annex.genmetadata is set, metadata from the feed + is added to files that are imported from it. + * Support users who have set commit.gpgsign, by disabling gpg signatures + for git-annex branch commits and commits made by the assistant. + * Fix memory leak when committing millions of changes to the git-annex + branch, eg after git-annex add has run on 2 million files in one go. + * Support building with bloomfilter 2.0.0. + * Run standalone install process when the assistant is started + (was only being run when the webapp was opened). + * Android: patch git to avoid fchmod, which fails on /sdcard. + * Windows: Got rid of that pesky DOS box when starting the webapp. + * Windows: Added Startup menu item so assistant starts automatically + on login. + * Windows: Fix opening file browser from webapp when repo is in a + directory with spaces. + * Windows: Assistant now logs to daemon.log. + + -- Joey Hess Mon, 07 Jul 2014 12:24:13 -0400 + +git-annex (5.20140613) unstable; urgency=medium + + * Ignore setsid failures. + * Avoid leaving behind .tmp files when failing in some cases, including + importing files to a disk that is full. + * Avoid bad commits after interrupted direct mode sync (or merge). + * Fix build with wai 0.3.0. + * Deal with FAT's low resolution timestamps, which in combination with + Linux's caching of higher res timestamps while a FAT is mounted, caused + direct mode repositories on FAT to seem to have modified files after + they were unmounted and remounted. + * Windows: Fix opening webapp when repository is in a directory with + spaces in the path. + * Detect when Windows has lost its mind in a timezone change, and + automatically apply a delta to the timestamps it returns, to get back to + sane values. + + -- Joey Hess Fri, 13 Jun 2014 09:58:07 -0400 + +git-annex (5.20140606) unstable; urgency=medium + + * webapp: When adding a new local repository, fix bug that caused its + group and preferred content to be set in the current repository, + even when not combining. + * webapp: Avoid stomping on existing description, group and + preferred content settings when enabling or combining with + an already existing remote. + * assistant: Make sanity checker tmp dir cleanup code more robust. + * unused: Avoid checking view branches for unused files. + * webapp: Include ssh port in mangled hostname. + * Windows: Fix bug introduced in last release that caused files + in the git-annex branch to have lines teminated with \r. + * Windows: Fix retrieving of files from local bare git repositories. + + -- Joey Hess Fri, 06 Jun 2014 12:54:06 -0400 + +git-annex (5.20140529) unstable; urgency=medium + + * Fix encoding of data written to git-annex branch. Avoid truncating + unicode characters to 8 bits. Allow any encoding to be used, as with + filenames (but utf8 is the sane choice). Affects metadata and repository + descriptions, and preferred content expressions. + * assistant: When there are multiple remotes giving different ways + to access the same repository, honor remote cost settings and use + the cheapest available. + * webapp: More robust startup when annex directory is not a git repo. + * initremote/enableremote: Basic support for using with regular git remotes; + initremote stores the location of an already existing git remote, + and enableremote setups up a remote using its stored location. + * webapp: Support for enabling known git repositories on ssh servers. + The repository must have been added using initremote. + * webapp: When setting up a ssh remote, record it using initremote, + so that it can be easily enabled elsewhere. + * webapp: When setting up a ssh remote, if the user inputs ~/foo, + normalize that to foo, since it's in the home directory by default. + * Use exceptions in place of deprecated MonadCatchIO-transformers + Thanks, Ben Gamari. + * android: Run busybox install with -s, since some versions of Android + prohibit making hard links. + * Android webapp: Fix EvilSplicer bugs that mangled the css files, + preventing icons from displaying, and also slightly broke the js files. + + -- Joey Hess Thu, 29 May 2014 14:41:56 -0400 + +git-annex (5.20140517) unstable; urgency=medium + + * webapp: Switched to bootstrap 3. + Thanks, Sören Brunk. + * Standalone builds now check gpg signatures before upgrading. + * Simplified repository description line format. The remote name, + if any, is always in square brackets after the description. + * assistant: Clean up stale tmp files on startup. + * webapp: Better ssh password prompting. + * Depend on git-remote-gcrypt 0.20130908-6. Older versions + fail when the assistant is run with no controlling tty. + * Added ddar special remote. + Thanks, Robie Basak. + * webapp: Fixed drag and drop to reorder the list of remotes. + * group: When no groups are specified to set, lists the current groups + of a repository. + * Add remote.$name.annex-shell configuration. + Thanks, Fraser Tweedale + * Support symlinking git-annex and git-annex-shell + from the Linux standalone bundle into PATH. + Thanks, jlebar. + + -- Joey Hess Sat, 17 May 2014 13:30:39 -0400 + +git-annex (5.20140421) unstable; urgency=medium + + * assistant: Now detects immediately when other repositories push + changes to a ssh remote, and pulls. + ** XMPP is no longer needed in this configuration! ** + This requires the remote server have git-annex-shell with + notifychanges support (>= 5.20140405) + * webapp: Show a network signal icon next to ssh and xmpp remotes that + it's currently connected with. + * webapp: Rework xmpp nudge to prompt for either xmpp or a ssh remote + to be set up. + * sync, assistant, remotedaemon: Use ssh connection caching for git pushes + and pulls. + * remotedaemon: When network connection is lost, close all cached ssh + connections. + * Improve handling of monthly/yearly scheduling. + * Avoid depending on shakespeare except for when building the webapp. + * uninit: Avoid making unncessary copies of files. + * info: Allow use in a repository where annex.uuid is not set. + * reinit: New command that can initialize a new repository using + the configuration of a previously known repository. + Useful if a repository got deleted and you want + to clone it back the way it was. + * drop --from: When local repository is untrusted, its copy of a file does + not count. + * Bring back rsync -p, but only when git-annex is running on a non-crippled + file system. This is a better approach to fix #700282 while not + unncessarily losing file permissions on non-crippled systems. + * webapp: Start even if the current directory is listed in + ~/.config/git-annex/autostart but no longer has a git repository in it. + * findref: New command, like find but shows files in a specified git ref. + * webapp: Fix UI for removing XMPP connection. + * When init detects that git is not configured to commit, and sets + user.email to work around the problem, also make it set user.name. + * webapp: Support using git-annex on a remote server, which was installed + from the standalone tarball or OSX app, and so does not have + git-annex in PATH (and may also not have git or rsync in PATH). + * standalone tarball, OSX app: Install a ~/.ssh/git-annex-wrapper, which + can be used to run git-annex, git, rsync, etc. + + -- Joey Hess Sun, 20 Apr 2014 19:43:14 -0400 + +git-annex (5.20140412) unstable; urgency=high + + * Last release didn't quite fix the high cpu issue in all cases, this should. + + -- Joey Hess Fri, 11 Apr 2014 17:14:38 -0400 + +git-annex (5.20140411) unstable; urgency=high + + * importfeed: Filename template can now contain an itempubdate variable. + Needs feed 0.3.9.2. + * Fix rsync progress parsing in locales that use comma in number display. + Closes: #744148 + * assistant: Fix high CPU usage triggered when a monthly fsck is scheduled, + and the last time the job ran was a day of the month > 12. This caused a + runaway loop. Thanks to Anarcat for his assistance, and to Maximiliano + Curia for identifying the cause of this bug. + * Remove wget from OSX dmg, due to issues with cert paths that broke + git-annex automatic upgrading. Instead, curl is used, unless the + OSX system has wget installed, which will then be used. + + -- Joey Hess Fri, 11 Apr 2014 14:59:49 -0400 + +git-annex (5.20140405) unstable; urgency=medium + + * git-annex-shell: Added notifychanges command. + * Improve display of dbus notifications. Thanks, Johan Kiviniemi. + * Fix nautilus script installation to not crash when the nautilus script dir + does not exist. Instead, only install scripts when the directory already + exists. + + -- Joey Hess Sat, 05 Apr 2014 16:54:33 -0400 + +git-annex (5.20140402) unstable; urgency=medium + + * unannex, uninit: Avoid committing after every file is unannexed, + for massive speedup. + * --notify-finish switch will cause desktop notifications after each + file upload/download/drop completes + (using the dbus Desktop Notifications Specification) + * --notify-start switch will show desktop notifications when each + file upload/download starts. + * webapp: Automatically install Nautilus integration scripts + to get and drop files. + * tahoe: Pass -d parameter before subcommand; putting it after + the subcommand no longer works with tahoe-lafs version 1.10. + (Thanks, Alberto Berti) + * forget --drop-dead: Avoid removing the dead remote from the trust.log, + so that if git remotes for it still exist anywhere, git annex info + will still know it's dead and not show it. + * git-annex-shell: Make configlist automatically initialize + a remote git repository, as long as a git-annex branch has + been pushed to it, to simplify setup of remote git repositories, + including via gitolite. + * add --include-dotfiles: New option, perhaps useful for backups. + * Version 5.20140227 broke creation of glacier repositories, + not including the datacenter and vault in their configuration. + This bug is fixed, but glacier repositories set up with the broken + version of git-annex need to have the datacenter and vault set + in order to be usable. This can be done using git annex enableremote + to add the missing settings. For details, see + http://git-annex.branchable.com/bugs/problems_with_glacier/ + * Added required content configuration. + * assistant: Improve ssh authorized keys line generated in local pairing + or for a remote ssh server to set environment variables in an + alternative way that works with the non-POSIX fish shell, as well + as POSIX shells. + + -- Joey Hess Wed, 02 Apr 2014 16:42:53 -0400 + +git-annex (5.20140320) unstable; urgency=medium + + * Fix zombie leak and general inneficiency when copying files to a + local git repo. + * Fix ssh connection caching stop method to work with openssh 6.5p1, + which broke the old method. + * webapp: Added a "Sync now" item to each repository's menu. + * webapp: Use securemem for constant time auth token comparisons. + * copy --fast --to remote: Avoid printing anything for files that + are already believed to be present on the remote. + * Commands that allow specifying which repository to act on using + the repository's description will now fail when multiple repositories + match, rather than picking a repository at random. + (So will --in=) + * Better workaround for problem umasks when eg, setting up ssh keys. + * "standard" can now be used as a first-class keyword in preferred content + expressions. For example "standard or (include=otherdir/*)" + * groupwanted can be used in preferred content expressions. + * vicfg: Allows editing preferred content expressions for groups. + * Improve behavior when unable to parse a preferred content expression + (thanks, ion). + * metadata: Add --get + * metadata: Support --key option (and some other ones like --all) + * For each metadata field, there's now an automatically maintained + "$field-lastchanged" that gives the date of the last change to that + field. Also the "lastchanged" field for the date of the last change + to any of a file's metadata. + * unused: In direct mode, files that are deleted from the work tree + and so have no content present are no longer incorrectly detected as + unused. + * Avoid encoding errors when using the unused log file. + * map: Fix crash when one of the remotes of a repo is a local directory + that does not exist, or is not a git repo. + * repair: Improve memory usage when git fsck finds a great many broken + objects. + * Windows: Fix some filename encoding bugs. + * rsync special remote: Fix slashes when used on Windows. + + -- Joey Hess Thu, 20 Mar 2014 13:21:12 -0400 + +git-annex (5.20140306) unstable; urgency=high + + * sync: Fix bug in direct mode that caused a file that was not + checked into git to be deleted when there was a conflicting + merge with a remote. + * webapp: Now supports HTTPS. + * webapp: No longer supports a port specified after --listen, since + it was buggy, and that use case is better supported by setting up HTTPS. + * annex.listen can be configured, instead of using --listen + * annex.startupscan can be set to false to disable the assistant's startup + scan. + * Probe for quvi version at run time. + * webapp: Filter out from Switch Repository list any + repositories listed in autostart file that don't have a + git directory anymore. (Or are bare) + * webapp: Refuse to start in a bare git repository. + * assistant --autostart: Refuse to start in a bare git repository. + * webapp: Don't list the public repository group when editing a + git repository; it only makes sense for special remotes. + * view, vfilter: Add support for filtering tags and values out of a view, + using !tag and field!=value. + * vadd: Allow listing multiple desired values for a field. + * view: Refuse to enter a view when no branch is currently checked out. + * metadata: To only set a field when it's not already got a value, use + -s field?=value + * Run .git/hooks/pre-commit-annex whenever a commit is made. + * sync: Automatically resolve merge conflict between and annexed file + and a regular git file. + * glacier: Pass --region to glacier checkpresent. + * webdav: When built with a new enough haskell DAV (0.6), disable + the http response timeout, which was only 5 seconds. + * webapp: Include no-pty in ssh authorized_keys lines. + * assistant: Smarter log file rotation, which takes free disk space + into account. + + -- Joey Hess Thu, 06 Mar 2014 12:28:04 -0400 + +git-annex (5.20140227) unstable; urgency=medium + + * metadata: Field names limited to alphanumerics and a few whitelisted + punctuation characters to avoid issues with views, etc. + * metadata: Field names are now case insensative. + * When constructing views, metadata is available about the location of the + file in the view's reference branch. Allows incorporating parts of the + directory hierarchy in a view. + For example `git annex view tag=* podcasts/=*` makes a view in the form + tag/showname. + * --metadata field=value can now use globs to match, and matches + case insensatively, the same as git annex view field=value does. + * annex.genmetadata can be set to make git-annex automatically set + metadata (year and month) when adding files. + * Make annex.web-options be used in several places that call curl. + * Fix handling of rsync remote urls containing a username, + including rsync.net. + * Preserve metadata when staging a new version of an annexed file. + * metadata: Support --json + * webapp: Fix creation of box.com and Amazon S3 and Glacier + repositories, broken in 5.20140221. + * webdav: When built with DAV 0.6.0, use the new DAV monad to avoid + locking files, which is not needed by git-annex's use of webdav, and + does not work on Box.com. + * webdav: Fix path separator bug when used on Windows. + * repair: Optimise unpacking of pack files, and avoid repeated error + messages about corrupt pack files. + * Add build dep on regex-compat to fix build on mipsel, which lacks + regex-tdfa. + * Disable test suite on sparc, which is missing optparse-applicative. + * Put non-object tmp files in .git/annex/misctmp, leaving .git/annex/tmp + for only partially transferred objects. + + -- Joey Hess Thu, 27 Feb 2014 11:34:19 -0400 + +git-annex (5.20140221) unstable; urgency=medium + + * metadata: New command that can attach metadata to files. + * --metadata can be used to limit commands to acting on files + that have particular metadata. + * Preferred content expressions can use metadata=field=value + to limit them to acting on files that have particular metadata. + * view: New command that creates and checks out a branch that provides + a structured view of selected metadata. + * vfilter, vadd, vpop, vcycle: New commands for operating within views. + * pre-commit: Update metadata when committing changes to locations + of annexed files within a view. + * Add progress display for transfers to/from external special remotes. + * unused: Fix to actually detect unused keys when in direct mode. + * fsck: When run with --all or --unused, while .gitattributes + annex.numcopies cannot be honored since it's operating on keys + instead of files, make it honor the global numcopies setting, + and the annex.numcopies git config setting. + * trust, untrust, semitrust, dead: Warn when the trust level is + overridden in .git/config. + * glacier: Do not try to run glacier value create when an existing glacier + remote is enabled. + * fsck: Refuse to do anything if more than one of --incremental, --more, + and --incremental-schedule are given, since it's not clear which option + should win. + * Windows webapp: Can set up box.com, Amazon S3, and rsync.net remotes + * Windows webapp: Can create repos on removable drives. + * Windows: Ensure HOME is set, as needed by bundled cygwin utilities. + + -- Joey Hess Fri, 21 Feb 2014 11:23:59 -0400 + +git-annex (5.20140210) unstable; urgency=medium + + * --in can now refer to files that were located in a repository at + some past date. For example, --in="here@{yesterday}" + * Fixed direct mode annexed content locking code, which is used to + guard against recursive file drops. + * This is the first beta-level release of the Windows port with important + fixes (see below). + (The webapp and assistant are still alpha-level on Windows.) + * sync --content: Honor annex-ignore configuration. + * sync: Don't try to sync with xmpp remotes, which are only currently + supported when using the assistant. + * sync --content: Re-pull from remotes after downloading content, + since that can take a while and other changes may be pushed in the + meantime. + * sync --content: Reuse smart copy code from copy command, including + handling and repairing out of date location tracking info. + Closes: #737480 + * sync --content: Drop files from remotes that don't want them after + getting them. + * sync: Fix bug in automatic merge conflict resolution code when used + on a filesystem not supporting symlinks, which resulted in it losing + track of the symlink bit of annexed files. + * Added ways to configure rsync options to be used only when uploading + or downloading from a remote. Useful to eg limit upload bandwidth. + * Fix initremote with encryption=pubkey to work with S3, glacier, webdav, + and external special remotes. + * Avoid building with DAV 0.6 which is badly broken (see #737902). + * Fix dropping of unused keys with spaces in their name. + * Fix build on platforms not supporting the webapp. + * Document in man page that sshcaching uses ssh ControlMaster. + Closes: #737476 + * Windows: It's now safe to run multiple git-annex processes concurrently + on Windows; the lock files have been sorted out. + * Windows: Avoid using unix-compat's rename, which refuses to rename + directories. + * Windows: Fix deletion of repositories by test suite and webapp. + * Windows: Test suite 100% passes again. + * Windows: Fix bug in symlink calculation code. + * Windows: Fix handling of absolute unix-style git repository paths. + * Android: Avoid crashing when unable to set file mode for ssh config file + due to Android filesystem horribleness. + + -- Joey Hess Mon, 10 Feb 2014 12:54:57 -0400 + +git-annex (5.20140127) unstable; urgency=medium + + * sync --content: New option that makes the content of annexed files be + transferred. Similar to the assistant, this honors any configured + preferred content expressions. + * Remove --json option from commands not supporting it. + * status: Support --json. + * list: Fix specifying of files to list. + * Allow --all to be mixed with matching options like --copies and --in + (but not --include and --exclude). + * numcopies: New command, sets global numcopies value that is seen by all + clones of a repository. + * The annex.numcopies git config setting is deprecated. Once the numcopies + command is used to set the global number of copies, any annex.numcopies + git configs will be ignored. + * assistant: Make the prefs page set the global numcopies. + * Add lackingcopies, approxlackingcopies, and unused to + preferred content expressions. + * Client, transfer, incremental backup, and archive repositories + now want to get content that does not yet have enough copies. + * Client, transfer, and source repositories now do not want to retain + unused file contents. + * assistant: Checks daily for unused file contents, and when possible + moves them to a repository (such as a backup repository) that + wants to retain them. + * assistant: annex.expireunused can be configured to cause unused + file contents to be deleted after some period of time. + * webapp: Nudge user to see if they want to expire old unused file + contents when a lot of them seem to be piling up in the repository. + * repair: Check git version at run time. + * assistant: Run the periodic git gc in batch mode. + * added annex.secure-erase-command config option. + * test suite: Use tasty-rerun, and expose tasty command-line options. + * Optimise non-bare http remotes; no longer does a 404 to the wrong + url every time before trying the right url. Needs annex-bare to be + set to false, which is done when initially probing the uuid of a + http remote. + * webapp: After upgrading a git repository to git-annex, fix + bug that made it temporarily not be synced with. + * whereis: Support --all. + * All commands that support --all also support a --key option, + which limits them to acting on a single key. + + -- Joey Hess Mon, 27 Jan 2014 13:43:28 -0400 + +git-annex (5.20140117) unstable; urgency=medium + + * Really fix FTBFS on mipsel and sparc due to test suite not being available + on those architectures. + + -- Joey Hess Fri, 17 Jan 2014 14:46:27 -0400 + +git-annex (5.20140116) unstable; urgency=medium + + * Added tahoe special remote. + * external special remote protocol: Added GETGITDIR, and GETAVAILABILITY. + * Refuse to build with git older than 1.7.1.1, which is needed for + git checkout -B + * map: Fix display of v5 direct mode repos. + * repair: Support old git versions from before git fsck --no-dangling was + implemented. + * Fix a long-standing bug that could cause the wrong index file to be used + when committing to the git-annex branch, if GIT_INDEX_FILE is set in the + environment. This typically resulted in git-annex branch log files being + committed to the master branch and later showing up in the work tree. + (These log files can be safely removed.) + * assistant: Detect if .git/annex/index is corrupt at startup, and + recover. + * repair: Fix bug in packed refs file exploding code that caused a .gitrefs + directory to be created instead of .git/refs + * Fix FTBFS on mipsel and sparc due to test suite not being available + on those architectures. + * Android: Avoid passing --clobber to busybox wget. + + -- Joey Hess Thu, 16 Jan 2014 11:34:54 -0400 + +git-annex (5.20140107) unstable; urgency=medium + + * mirror: Support --all (and --unused). + * external special remote protocol: Added GETUUID, GETWANTED, SETWANTED, + SETSTATE, GETSTATE, DEBUG. + * Windows: Fix bug in direct mode merge code that could cause files + in subdirectories to go missing. + * Windows: Avoid eating stdin when running ssh to add a authorized key, + since this is used for password prompting. + * Avoid looping if long-running git cat-file or git hash-object crashes + and keeps crashing when restarted. + * Assistant: Remove stale MERGE_HEAD files in lockfile cleanup. + * Remotes can now be made read-only, by setting remote..annex-readonly + * wanted, schedule: Avoid printing "ok" after requested value. + * assistant: Ensure that .ssh/config and .ssh/authorized_keys are not + group or world writable when writing to those files, as that can make + ssh refuse to use them, if it allows another user to write to them. + * addurl, importfeed: Honor annex.diskreserve as long as the size of the + url can be checked. + * add: Fix rollback when disk is completely full. + * assistant: Fixed several minor memory leaks that manifested when + adding a large number of files. + * assistant: Start a new git-annex transferkeys process + after a network connection change, so that remotes that use a persistent + network connection are restarted. + * Adjust Debian build deps to match current state of sparc, mipsel. + + -- Joey Hess Tue, 07 Jan 2014 12:22:18 -0400 + +git-annex (5.20131230) unstable; urgency=medium + + * Added new external special remote interface. + * importfeed: Support youtube playlists. + * Add tasty to build-depends, so that test suite builds again. + (tasty was stuck in incoming.) + * Fix typo in test suite. + * Fix bug in Linux standalone build's shimming that broke git-annex-shell. + * Include git-receive-pack, git-upload-pack, git, and git-shell wrappers + in the Linux standalone build, and OSX app, so they will be available + when it's added to PATH. + * addurl, importfeed: Sanitize | and some other symbols and special + characters. + * Auto-upgrade v3 indirect repos to v5 with no changes. + This also fixes a problem when a direct mode repo was somehow set to v3 + rather than v4, and so the automatic direct mode upgrade to v5 was not + done. + * Android: Avoid trying to use Android's own ionice, which does not + allow specifying a command to run. Fixes transferring files to/from + android and probably a few other things. + + -- Joey Hess Mon, 30 Dec 2013 14:13:40 -0400 + +git-annex (5.20131221) unstable; urgency=low + + * assistant: Fix OSX-specific bug that caused the startup scan to try to + follow symlinks to other directories, and add their contents to the annex. + * assistant: Set StrictHostKeyChecking yes when creating ssh remotes, + and add it to the configuration for any ssh remotes previously created + by the assistant. This avoids repeated prompts by ssh if the host key + changes, instead syncing with such a remote will fail. Closes: #732602 + * Fix test suite to cover lock --force change. + * Add plumbing-level lookupkey and examinekey commands. + * find --format: Added hashdirlower, hashdirmixed, keyname, and mtime + format variables. + * assistant: Always batch changes found in startup scan. + * An armel Linux standalone build is now available, which includes the + webapp. + * Programs from Linux and OSX standalone builds can now be symlinked + into a directory in PATH as an alternative installation method, and will + use readlink to find where the build was unpacked. + * Include man pages in Linux and OSX standalone builds. + * Linux standalone build now includes its own glibc and forces the linker to + use it, to remove dependence on the host glibc. + + -- Joey Hess Sat, 21 Dec 2013 12:00:17 -0400 + +git-annex (5.20131213) unstable; urgency=low + + * Avoid using git commit in direct mode, since in some situations + it will read the full contents of files in the tree. + * assistant: Batch jobs are now run with ionice and nocache, when + those commands are available. + * assistant: Run transferkeys as batch jobs. + * Automatically fix up bad bare repositories created by + versions 5.20131118 through 5.20131127. + * rsync special remote: Fix fallback mode for rsync remotes that + use hashDirMixed. Closes: #731142 + * copy --from, get --from: When --force is used, ignore the + location log and always try to get the file from the remote. + * Deal with box.com changing the url of their webdav endpoint. + * Android: Fix SRV record lookups for XMPP to use android getprop + command to find DNS server, since there is no resolv.conf. + * import: Add --skip-duplicates option. + * lock: Require --force. Closes: #731606 + * import: better handling of overwriting an existing file/directory/broken + link when importing + * Windows: assistant and webapp work! (very experimental) + * Windows: Support annex.diskreserve. + * Fix bad behavior in Firefox, which was caused by an earlier fix to + bad behavior in Chromium. + * repair: Improve repair of git-annex index file. + * repair: Remove damaged git-annex sync branches. + * status: Ignore new files that are gitignored. + * Fix direct mode's handling when modifications to non-annexed files + are pulled from a remote. A bug prevented the files from being updated + in the work tree, and this caused the modification to be reverted. + * OSX: Remove ssh and ssh-keygen from dmg as they're included in OSX by + default. + + -- Joey Hess Fri, 13 Dec 2013 14:20:32 -0400 + +git-annex (5.20131130) unstable; urgency=low + + * init: Fix a bug that caused git annex init, when run in a bare + repository, to set core.bare=false. + + -- Joey Hess Sat, 30 Nov 2013 16:32:35 -0400 + +git-annex (5.20131127.1) unstable; urgency=low + + * Rebuild that does not try to use quvi 0.9 from experimental. + + -- Joey Hess Thu, 28 Nov 2013 07:57:36 -0400 + +git-annex (5.20131127) unstable; urgency=low + + * webapp: Detect when upgrades are available, and upgrade if the user + desires. + (Only when git-annex is installed using the prebuilt binaries + from git-annex upstream, not from eg Debian.) + * assistant: Detect when the git-annex binary is modified or replaced, + and either prompt the user to restart the program, or automatically + restart it. + * annex.autoupgrade configures both the above upgrade behaviors. + * Added support for quvi 0.9. Slightly suboptimal due to limitations in its + interface compared with the old version. + * Bug fix: annex.version did not get set on automatic upgrade to v5 direct + mode repo, so the upgrade was performed repeatedly, slowing commands down. + * webapp: Fix bug that broke switching between local repositories + that use the new guarded direct mode. + * Android: Fix stripping of the git-annex binary. + * Android: Make terminal app show git-annex version number. + * Android: Re-enable XMPP support. + * reinject: Allow to be used in direct mode. + * Futher improvements to git repo repair. Has now been tested in tens + of thousands of intentionally damaged repos, and successfully + repaired them all. + * Allow use of --unused in bare repository. + + -- Joey Hess Wed, 27 Nov 2013 18:41:44 -0400 + +git-annex (5.20131120) unstable; urgency=low + + * Fix Debian package to not try to run test suite, since haskell-tasty + is not out of new or in Build-Depends yet. + * dropunused, addunused: Allow "all" instead of a range to + act on all unused data. + * Ensure execute bit is set on directories when core.sharedrepository is set. + * Ensure that core.sharedrepository is honored when creating the .git/annex + directory. + * Improve repair code in the case where the index file is corrupt, + and this hides other problems from git fsck. + + -- Joey Hess Wed, 20 Nov 2013 12:54:18 -0400 + +git-annex (5.20131118) unstable; urgency=low + + * Direct mode repositories now have core.bare=true set, to prevent + accidentally running git commands that try to operate on the work tree, + and so do the wrong thing in direct mode. + * annex.version is now set to 5 for direct mode repositories. + This upgrade is handled fully automatically, no need to run + git annex upgrade + * The "status" command has been renamed to "info", to allow + "git annex status" to be used in direct mode repositories, now that + "git status" won't work in them. + * The -c option now not only modifies the git configuration seen by + git-annex, but it is passed along to every git command git-annex runs. + * watcher: Avoid loop when adding a file owned by someone else fails + in indirect mode because its permissions cannot be modified. + * webapp: Avoid encoding problems when displaying the daemon log file. + * webapp: Improve UI around remote that have no annex.uuid set, + either because setup of them is incomplete, or because the remote + git repository is not a git-annex repository. + * Include ssh-keygen in standalone bundle. + * Allow optionally configuring git-annex with -fEKG to enable awesome + remote monitoring interfaceat http://localhost:4242/ + * Fix bug that caused bad information to be written to the git-annex branch + when running describe or other commands with a remote that has no uuid. + * Work around Android linker problem that had prevented git-annex from + running on Android 4.3 and 4.4. + * repair: Handle case where index file is corrupt, but all objects are ok. + * assistant: Notice on startup when the index file is corrupt, and + auto-repair. + * Fix direct mode merge bug when a direct mode file was deleted and replaced + with a directory. An ordering problem caused the directory to not get + created in this case. + Thanks to Tim for the test case. + * Direct mode .git/annex/objects directories are no longer left writable, + because that allowed writing to symlinks of files that are not present, + which followed the link and put bad content in an object location. + Thanks to Tim for the test case. + * fsck: Fix up .git/annex/object directory permissions. + * Switched to the tasty test framework. + * Android: Adjust default .gitignore to ignore .thumbnails at any location + in the tree, not just at its top. + * webapp: Check annex.version. + + -- Joey Hess Mon, 18 Nov 2013 10:45:43 -0400 + +git-annex (4.20131106) unstable; urgency=low + + * Improve local pairing behavior when two computers both try to start + the pairing process separately. + * sync: Work even when the local git repository is new and empty, + with no master branch. + * gcrypt, bup: Fix bug that prevented using these special remotes + with encryption=pubkey. + * Fix enabling of gcrypt repository accessed over ssh; + git-annex-shell gcryptsetup had a bug that caused it to fail + with permission denied. + * Fix zombie process that occurred when switching between repository + views in the webapp. + * map: Work when there are gcrypt remotes. + * Fix build w/o webapp. + * Fix exception handling bug that could cause .git/annex/index to be used + for git commits outside the git-annex branch. Known to affect git-annex + when used with the git shipped with Ubuntu 13.10. + + -- Joey Hess Wed, 06 Nov 2013 11:17:47 -0400 + +git-annex (4.20131101) unstable; urgency=low + + * The "git annex content" command is renamed to "git annex wanted". + * New --want-get and --want-drop options which can be used to + test preferred content settings. + For example, "git annex find --in . --want-drop" + * assistant: When autostarted, wait 5 seconds before running the startup + scan, to avoid contending with the user's desktop login process. + * webapp: When setting up a bare shared repository, enable non-fast-forward + pushes. + * sync: Show a hint about receive.denyNonFastForwards when a push fails. + * directory, webdav: Fix bug introduced in version 4.20131002 that + caused the chunkcount file to not be written. Work around repositories + without such a file, so files can still be retreived from them. + * assistant: Automatically repair damanged git repository, if it can + be done without losing data. + * assistant: Support repairing git remotes that are locally accessible + (eg, on removable drives). + * add: Fix reversion in 4.20130827 when adding unlocked files that have + not yet been committed. + * unannex: New, much slower, but more safe behavior: Copies files out of + the annex. This avoids an unannex of one file breaking other files that + link to the same content. Also, it means that the content + remains in the annex using up space until cleaned up with + "git annex unused". + (The behavior of unannex --fast has not changed; it still hard links + to content in the annex. --fast was not made the default because it is + potentially unsafe; editing such a hard linked file can unexpectedly + change content stored in the annex.) + + -- Joey Hess Fri, 01 Nov 2013 11:34:27 -0400 + +git-annex (4.20131024) unstable; urgency=low + + * webapp: Fix bug when adding a remote and git-remote-gcrypt + is not installed. + * The assitant can now run scheduled incremental fsck jobs on the local + repository and remotes. These can be configured using vicfg or with the + webapp. + * repair: New command, which can repair damaged git repositories + (even ones not using git-annex). + * webapp: When git repository damange is detected, repairs can be + done using the webapp UI. + * Automatically and safely detect and recover from dangling + .git/annex/index.lock files, which would prevent git from + committing to the git-annex branch, eg after a crash. + * assistant: Detect stale git lock files at startup time, and remove them. + * addurl: Better sanitization of generated filenames. + * Better sanitization of problem characters when generating URL and WORM + keys. + * The control socket path passed to ssh needs to be 17 characters + shorter than the maximum unix domain socket length, because ssh + appends stuff to it to make a temporary filename. Closes: #725512 + * status: Fix space leak in local mode, introduced in version 4.20130920. + * import: Skip .git directories. + * Remove bogus runshell loop check. + * addurl: Improve message when adding url with wrong size to existing file. + * Fixed handling of URL keys that have no recorded size. + * status: Fix a crash if a temp file went away while its size was + being checked for status. + * Deal with git check-attr -z output format change in git 1.8.5. + * Work around sed output difference that led to version containing a newline + on OSX. + * sync: Fix automatic resolution of merge conflicts where one side is an + annexed file, and the other side is a non-annexed file, or a directory. + * S3: Try to ensure bucket name is valid for archive.org. + * assistant: Bug fix: When run in a subdirectory, files from incoming merges + were wrongly added to that subdirectory, and removed from their original + locations. + * Windows: Deal with strange msysgit 1.8.4 behavior of not understanding + DOS formatted paths for --git-dir and --work-tree. + * Removed workaround for bug in git 1.8.4r0. + * Added git-recover-repository command to git-annex source + (not built by default; this needs to move to someplace else). + * webapp: Move sidebar to the right hand side of the screen. + + -- Joey Hess Thu, 24 Oct 2013 12:59:55 -0400 + +git-annex (4.20131002) unstable; urgency=low + + * Note that the layout of gcrypt repositories has changed, and + if you created one you must manually upgrade it. + See http://git-annex.branchable.com/upgrades/gcrypt/ + * webapp: Support setting up and using encrypted git repositories on + any ssh server, as well as on rsync.net. + * git-annex-shell: Added support for operating inside gcrypt repositories. + * Disable receive.denyNonFastForwards when setting up a gcrypt special + remote, since gcrypt needs to be able to fast-forward the master branch. + * import: Preserve top-level directory structure. + * Use cryptohash rather than SHA for hashing when no external hash program + is available. This is a significant speedup for SHA256 on OSX, for + example. + * Added SKEIN256 and SKEIN512 backends. + * Android build redone from scratch, many dependencies updated, + and entire build can now be done using provided scripts. + * assistant: Clear the list of failed transfers when doing a full transfer + scan. This prevents repeated retries to download files that are not + available, or are not referenced by the current git tree. + * indirect, direct: Better behavior when a file is not owned by + the user running the conversion. + * add, import, assistant: Better preserve the mtime of symlinks, + when when adding content that gets deduplicated. + * Send a git-annex user-agent when downloading urls. + Overridable with --user-agent option. + (Not yet done for S3 or WebDAV due to limitations of libraries used.) + * webapp: Fixed a bug where when a new remote is added, one file + may fail to sync to or from it due to the transferrer process not + yet knowing about the new remote. + * OSX: Bundled gpg upgraded, now compatible with config files + written by MacGPG. + * assistant: More robust inotify handling; avoid crashing if a directory + cannot be read. + * Moved list of backends and remote types from status to version + command. + + -- Joey Hess Wed, 02 Oct 2013 16:00:39 -0400 + +git-annex (4.20130920) unstable; urgency=low + + * webapp: Initial support for setting up encrypted removable drives. + * Recommend using my patched gcrypt, which fixes some bugs: + https://github.com/joeyh/git-remote-gcrypt + * Support hot-swapping of removable drives containing gcrypt repositories. + * list: New command, displays a compact table of remotes that + contain files. + (Thanks, anarcat for display code and mastensg for inspiration.) + * fsck: Fix detection and fixing of present direct mode files that are + wrongly represented as standin symlinks on crippled filesystems. + * sync: Fix bug that caused direct mode mappings to not be updated + when merging files into the tree on Windows. + * sync: Don't fail if the directory it is run in gets removed by the + sync. + * addurl: Fix quvi audodetection, broken in last release. + * status: In local mode, displays information about variance from configured + numcopies levels. (--fast avoids calculating these) + * gcrypt: Ensure that signing key is set to one of the participants keys. + * webapp: Show encryption information when editing a remote. + * Avoid unnecessarily catting non-symlink files from git, which can be + so large it runs out of memory. + + -- Joey Hess Fri, 20 Sep 2013 10:34:51 -0400 + +git-annex (4.20130911) unstable; urgency=low + + * Fix problem with test suite in non-unicode locale. + + -- Joey Hess Wed, 11 Sep 2013 12:14:16 -0400 + +git-annex (4.20130909) unstable; urgency=low + + * initremote: Syntax change when setting up an encrypted special remote. + Now use keyid=$KEYID rather than the old encryption=$KEYID + * forget: New command, causes git-annex branch history to be forgotten + in a way that will spread to other clones of the repository. + (As long as they're running this version or newer of git-annex.) + * forget --drop-dead: Completely removes mentions of repositories that + have been marked as dead from the git-annex branch. + * sync, assistant: Force push of the git-annex branch. Necessary + to ensure it gets pushed to remotes after being rewritten by forget. + * Added gcrypt support. This combines a fully encrypted git + repository (using git-remote-gcrypt) with an encrypted git-annex special + remote. + * sync: Support syncing with gcrypt remotes. + * importfeed: Also ignore transient problems with downloading content + from feeds. + * Honor core.sharedrepository when receiving and adding files in direct + mode. + * enableremote: gpg keys can be removed from those a remote encrypts + to by passing "keyid-=$KEYID". keyid+= is also provided. + (Thanks, guilhem for the patch.) + * Added encryption=pubkey scheme, which encrypts to public keys directly + rather than the hybrid approach. See documentation for advantages + and disadvantages, but encryption=hybrid is the recommended scheme still. + (Thanks, guilhem for the patch.) + * Fix Feeds display in build flags. + * Remind user when annex-ignore is set for some remotes, if unable to + get or drop a file, possibly because it's on an ignored remote. + * gpg: Force --no-textmode in case the user has it turned on in config. + * webapp: Improve javascript's handling of longpolling connection + failures, by reloading the current page in this case. + Works around chromium behavior where ajax connections to urls + that were already accessed are denied after navigating back to + a previous page. + * Allow building without quvi support. + + -- Joey Hess Mon, 09 Sep 2013 09:47:02 -0400 + +git-annex (4.20130827) unstable; urgency=low + + * Youtube support! (And 53 other video hosts). When quvi is installed, + git-annex addurl automatically uses it to detect when an page is + a video, and downloads the video file. + * web special remote: Also support using quvi, for getting files, + or checking if files exist in the web. + * unused: Is now a minimum of 30 times faster, and typically many + more times than that (when a repository has several branches). + (Thanks, guilhem for the patch.) + * unused: Fix bugs in two edge cases involving manually staged changes. + (Thanks, guilhem for the patch.) + * Android: Fix bug in terminal app that caused it to spin using much + CPU and battery. This problem was introduced in version 4.20130601. + * sync, merge: Bug fix: Don't try to merge into master when in a bare repo. + * import: Add options to control handling of duplicate files: + --duplicate, --deduplicate, and --clean-duplicates + * mirror: New command, makes two repositories contain the same set of files. + * Set --clobber when running wget to ensure resuming works properly. + * Unescape characters in 'file://...' URIs. (Thanks, guilhem for the patch.) + * Better error message when trying to use a git remote that has annex.ignore + set. + * Fix bug that caused typechanged symlinks to be assumed to be unlocked + files, so they were added to the annex by the pre-commit hook. + * Debian: Run the builtin test suite as an autopkgtest. + * Debian: Recommend ssh-askpass, which ssh will use when the assistant + is run w/o a tty. Closes: #719832 + + -- Joey Hess Tue, 27 Aug 2013 11:03:00 -0400 + +git-annex (4.20130815) unstable; urgency=low + + * assistant, watcher: .gitignore files and other git ignores are now + honored, when git 1.8.4 or newer is installed. + (Thanks, Adam Spiers, for getting the necessary support into git for this.) + * importfeed: Ignores transient problems with feeds. Only exits nonzero + when a feed has repeatedly had a problems for at least 1 day. + * importfeed: Fix handling of dots in extensions. + * Windows: Added support for encrypted special remotes. + * Windows: Fixed permissions problem that prevented removing files + from directory special remote. Directory special remotes now fully usable. + + -- Joey Hess Thu, 15 Aug 2013 10:14:33 +0200 + +git-annex (4.20130802) unstable; urgency=low + + * dropunused behavior change: Now refuses to drop the last copy of a + file, unless you use the --force. + This was the last place in git-annex that could remove data referred + to by the git history, without being forced. + Like drop, dropunused checks remotes, and honors the global + annex.numcopies setting. (However, .gitattributes settings cannot + apply to unused files.) + * Fix inverted logic in last release's fix for data loss bug, + that caused git-annex sync on FAT or other crippled filesystems to add + symlink standin files to the annex. + * importfeed can be used to import files from podcast feeds. + * webapp: When setting up a dedicated ssh key to access the annex + on a host, set IdentitiesOnly to prevent the ssh-agent from forcing + use of a different ssh key. That could result in unncessary password + prompts, or prevent git-annex-shell from being run on the remote host. + * webapp: Improve handling of remotes whose setup has stalled. + * Add status message to XMPP presence tag, to identify to others that + the client is a git-annex client. Closes: #717652 + * webapp: When creating a repository on a removable drive, set + core.fsyncobjectfiles, to help prevent data loss when the drive is yanked. + * Always build with -threaded, to avoid a deadlock when communicating with + gpg. + * unused: No longer shows as unused tmp files that are actively being + transferred. + * assistant: Fix NetWatcher to not sync with remotes that have + remote..annex-sync set to false. + * assistant: Fix deadlock that could occur when adding a lot of files + at once in indirect mode. + * assistant: Fix bug that caused it to stall when adding a very large + number of files at once (around 5 thousand). + * OSX: Make git-annex-webapp run in the background, so that the app icon + can be clicked on the open a new webapp when the assistant is already + running. + * Improve test suite on Windows; now tests git annex sync. + * Fix a few bugs involving filenames that are at or near the filesystem's + maximum filename length limit. + * find: Avoid polluting stdout with progress messages. Closes: #718186 + * Escape ':' in file/directory names to avoid it being treated + as a pathspec by some git commands. Closes: #718185 + * Slow and ugly work around for bug #718517 in git 1.8.4~rc0, which broke + git-cat-file --batch for filenames containing spaces. + (Will be reverted after next git pre-release fixes the problem.) + + -- Joey Hess Fri, 02 Aug 2013 11:35:16 -0400 + +git-annex (4.20130723) unstable; urgency=low + + * Fix data loss bug when adding an (uncompressed) tarball of a + git-annex repository, or other file that begins with something + that can be mistaken for a git-annex link. Closes: #717456 + * New improved version of the git-annex logo, contributed by + John Lawrence. + * Rsync.net have committed to support git-annex and offer a special + discounted rate for git-annex users. Updated the webapp to reflect this. + http://www.rsync.net/products/git-annex-pricing.html + * Install XDG desktop icon files. + * Support unannex and uninit in direct mode. + * Support import in direct mode. + * webapp: Better display of added files. + * fix: Preserve the original mtime of fixed symlinks. + * uninit: Preserve .git/annex/objects at the end, if it still + has content, so that old versions of files and deleted files + are not deleted. Print a message with some suggested actions. + * When a transfer is already being run by another process, + proceed on to the next file, rather than dying. + * Fix checking when content is present in a non-bare repository + accessed via http. + * Display byte sizes with more precision. + * watcher: Fixed a crash that could occur when a directory was renamed + or deleted before it could be scanned. + * watcher: Partially worked around a bug in hinotify, no longer crashes + if hinotify cannot process a directory (but can't detect changes in it) + * directory special remote: Fix checking that there is enough disk space + to hold an object, was broken when using encryption. + * webapp: Differentiate between creating a new S3/Glacier/WebDav remote, + and initializing an existing remote. When creating a new remote, avoid + conflicts with other existing (or deleted) remotes with the same name. + * When an XMPP server has SRV records, try them, but don't then fall + back to the regular host if they all fail. + * For long hostnames, use a hash of the hostname to generate the socket + file for ssh connection caching. + + -- Joey Hess Tue, 23 Jul 2013 10:46:05 -0400 + +git-annex (4.20130709) unstable; urgency=low + + * --all: New switch that makes git-annex operate on all data stored + in the git annex, including old versions of files. Supported by + fsck, get, move, copy. + * --unused: New switch that makes git-annex operate on all data found + by the last run of git annex unused. Supported by fsck, move, copy. + * get, move, copy: Can now be run in a bare repository, + like fsck already could. --all is enabled automatically in this case. + * merge: Now also merges synced/master or similar branches, which + makes it useful to put in a post-receive hook to make a repository + automatically update its working copy when git annex sync or the assistant + sync with it. + * webapp: Fix ssh setup with nonstandard port, broken in last release. + * init: Detect systems on which git commit fails due to not being able to + determine the FQDN, and put in a workaround so committing to the git-annex + branch works. + * addurl --pathdepth: Fix failure when the pathdepth specified is deeper + than the urls's path. + * Windows: Look for .exe extension when searching for a command in path. + * Pass -f to curl when downloading a file with it, so it propigates failure. + * Windows: Fix url to object when using a http remote. + * webapp: Fix authorized_keys line added when setting up a rsync remote + on a server that also supports git-annex, to not force running + git-annex-shell. + * OSX Mountain Lion: Fixed gpg bundled in dmg to not fail due to a missing + gpg-agent. + * Android: gpg is built without --enable-minimal, so it interoperates + better with other gpg builds that may default to using other algorithms + for encryption. + * dropunused, addunused: Complain when asked to operate on a number that + does not correspond to any unused key. + * fsck: Don't claim to fix direct mode when run on a symlink whose content + is not present. + * Make --numcopies override annex.numcopies set in .gitattributes. + + -- Joey Hess Tue, 09 Jul 2013 13:55:39 -0400 + +git-annex (4.20130627) unstable; urgency=low + + * assistant --autostart: Automatically ionices the daemons it starts. + * assistant: Daily sanity check thread is run niced. + * bup: Handle /~/ in bup remote paths. + Thanks, Oliver Matthews + * fsck: Ensures that direct mode is used for files when it's enabled. + * webapp: Fix bug when setting up a remote ssh repo repeatedly on the same + server. + * webapp: Ensure that ssh keys generated for different directories + on a server are always different. + * webapp: Fix bug setting up ssh repo if the user enters "~/" at the start + of the path. + * assistant: Fix bug that prevented adding files written by gnucash, + and more generally support adding hard links to files. However, + other operations on hard links are still unsupported. + * webapp: Fix bug that caused the webapp to hang when built with yesod 1.2. + + -- Joey Hess Thu, 27 Jun 2013 14:21:55 -0400 + +git-annex (4.20130621) unstable; urgency=low + + * Supports indirect mode on encfs in paranoia mode, and other + filesystems that do not support hard links, but do support + symlinks and other POSIX filesystem features. + * Android: Add .thumbnails to .gitignore when setting up a camera + repository. + * Android: Make the "Open webapp" menu item open the just created + repository when a new repo is made. + * webapp: When the user switches to display a different repository, + that repository becomes the default repository to be displayed next time + the webapp gets started. + * glacier: Better handling of the glacier inventory, which avoids + duplicate uploads to the same glacier repository by `git annex copy`. + * Direct mode: No longer temporarily remove write permission bit of files + when adding them. + * sync: Better support for bare git remotes. Now pushes directly to the + master branch on such a remote, instead of to synced/master. This + makes it easier to clone from a bare git remote that has been populated + with git annex sync or by the assistant. + * Android: Fix use of cp command to not try to use features present + only on build system. + * Windows: Fix hang when adding several files at once. + * assistant: In direct mode, objects are now only dropped when all + associated files are unwanted. This avoids a repreated drop/get loop + of a file that has a copy in an archive directory, and a copy not in an + archive directory. (Indirect mode still has some buggy behavior in this + area, since it does not keep track of associated files.) + Closes: #712060 + * status: No longer shows dead repositories. + * annex.debug can now be set to enable debug logging by default. + The webapp's debugging check box does this. + * fsck: Avoid getting confused by Windows path separators + * Windows: Multiple bug fixes, including fixing the data written to the + git-annex branch. + * Windows: The test suite now passes on Windows (a few broken parts are + disabled). + * assistant: On Linux, the expensive transfer scan is run niced. + * Enable assistant and WebDAV support on powerpc and sparc architectures, + which now have the necessary dependencies built. + + -- Joey Hess Fri, 21 Jun 2013 10:18:41 -0400 + +git-annex (4.20130601) unstable; urgency=medium + + * XMPP: Git push over xmpp made much more robust. + * XMPP: Avoid redundant and unncessary pushes. Note that this breaks + compatibility with previous versions of git-annex, which will refuse + to accept any XMPP pushes from this version. + * XMPP: Send pings and use them to detect when contact with the server + is lost. + * hook special remote: Added combined hook program support. + * Android app: Avoid using hard links to app's lib directory, which + is sometimes on a different filesystem than the data directory. + * Fix bug in parsing of parens in some preferred content expressions. + This fixes the behavior of the manual mode group. + * assistant: Work around git-cat-file's not reloading the index after files + are staged. + * Improve error handling when getting uuid of http remotes to auto-ignore, + like with ssh remotes. + * content: New command line way to view and configure a repository's + preferred content settings. + * sync: Fix double merge conflict resolution handling. + * XMPP: Fix a file descriptor leak. + * Android: Added an "Open WebApp" item to the terminal's menu. + * Android: Work around Android devices where the `am` command doesn't work. + * Can now restart certain long-running git processes if they crash, and + continue working. + + -- Joey Hess Sat, 01 Jun 2013 19:16:04 -0400 + +git-annex (4.20130521) unstable; urgency=low + + * Sanitize debian changelog version before putting it into cabal file. + Closes: #708619 + * Switch to MonadCatchIO-transformers for better handling of state while + catching exceptions. + * Fix a zombie that could result when running a process like gpg to + read and write to it. + * Allow building with gpg2. + * Disable building with the haskell threaded runtime when the webapp + is not built. This may fix builds on mips, s390x and sparc, which are + failing to link -lHSrts_thr + * Temporarily build without webapp on kfreebsd-i386, until yesod is + installable there again. + * Direct mode bug fix: After a conflicted merge was automatically resolved, + the content of a file that was already present could incorrectly + be replaced with a symlink. + * Fix a bug in the git-annex branch handling code that could + cause info from a remote to not be merged and take effect immediately. + * Direct mode is now fully tested by the test suite. + * Detect bad content in ~/.config/git-annex/program and look in PATH instead. + * OSX: Fixed gpg included in dmg. + * Linux standalone: Back to being built with glibc 2.13 for maximum + portability. + + -- Joey Hess Tue, 21 May 2013 13:10:26 -0400 + +git-annex (4.20130516) unstable; urgency=low + + * Android: The webapp is ported and working. + * Windows: There is a very rough Windows port. Do not trust it with + important data. + * git-annex-shell: Ensure that received files can be read. Files + transferred from some Android devices may have very broken permissions + as received. + * direct mode: Direct mode commands now work on files staged in the index, + they do not need to be committed to git. + * Temporarily add an upper bound to the version of yesod that can be built + with, since yesod 1.2 has a great many changes that will require extensive + work on the webapp. + * Disable building with the haskell threaded runtime when the assistant + is not built. This may fix builds on s390x and sparc, which are failing + to link -lHSrts_thr + * Avoid depending on regex-tdfa on mips, mipsel, and s390, where it fails + to build. + * direct: Fix a bug that could cause some files to be left in indirect mode. + * When initializing a directory special remote with a relative path, + the path is made absolute. + * SHA: Add a runtime sanity check that sha commands output something + that appears to be a real sha. + * configure: Better checking that sha commands output in the desired format. + * rsync special remotes: When sending from a crippled filesystem, use + the destination's default file permissions, as the local ones can + be arbitrarily broken. (Ie, ----rwxr-x for files on Android) + * migrate: Detect if a file gets corrupted while it's being migrated. + * Debian: Add a menu file. + + -- Joey Hess Thu, 16 May 2013 11:03:35 -0400 + +git-annex (4.20130501) unstable; urgency=low + + * sync, assistant: Behavior changes: Sync with remotes that have + annex-ignore set, so that git remotes on servers without git-annex + installed can be used to keep clients' git repos in sync. + * assistant: Work around misfeature in git 1.8.2 that makes + `git commit --alow-empty -m ""` run an editor. + * sync: Bug fix, avoid adding to the annex the + dummy symlinks used on crippled filesystems. + * Add public repository group. + (And inpreferreddir to preferred content expressions.) + * webapp: Can now set up Internet Archive repositories. + * S3: Dropping content from the Internet Archive doesn't work, but + their API indicates it does. Always refuse to drop from there. + * Automatically register public urls for files uploaded to the + Internet Archive. + * To enable an existing special remote, the new enableremote command + must be used. The initremote command now is used only to create + new special remotes. + * initremote: If two existing remotes have the same name, + prefer the one with a higher trust level. + * assistant: Improved XMPP protocol to better support multiple repositories + using the same XMPP account. Fixes bad behavior when sharing with a friend + when you or the friend have multiple reposotories on an XMPP account. + Note that XMPP pairing with your own devices still pairs with all + repositories using your XMPP account. + * assistant: Fix bug that could cause incoming pushes to not get + merged into the local tree. Particularly affected XMPP pushes. + * webapp: Display some additional information about a repository on + its edit page. + * webapp: Install FDO desktop menu file when started in standalone mode. + * webapp: Don't default to making repository in cwd when started + from within a directory containing a git-annex file (eg, standalone + tarball directory). + * Detect systems that have no user name set in GECOS, and also + don't have user.name set in git config, and put in a workaround + so that commits to the git-annex branch (and the assistant) + will still succeed despite git not liking the system configuration. + * webapp: When told to add a git repository on a remote server, and + the repository already exists as a non-bare repository, use it, + rather than initializing a bare repository in the same directory. + * direct, indirect: Refuse to do anything when the assistant + or git-annex watch daemon is running. + * assistant: When built with git before 1.8.0, use `git remote rm` + to delete a remote. Newer git uses `git remote remove`. + * rmurl: New command, removes one of the recorded urls for a file. + * Detect when the remote is broken like bitbucket is, and exits 0 when + it fails to run git-annex-shell. + * assistant: Several improvements to performance and behavior when + performing bulk adds of a large number of files (tens to hundreds + of thousands). + * assistant: Sanitize XMPP presence information logged for debugging. + * webapp: Now automatically fills in any creds used by an existing remote + when creating a new remote of the same type. Done for Internet Archive, + S3, Glacier, and Box.com remotes. + * Store an annex-uuid file in the bucket when setting up a new S3 remote. + * Support building with DAV 0.4. + + -- Joey Hess Wed, 01 May 2013 01:42:46 -0400 + +git-annex (4.20130417) unstable; urgency=low + + * initremote: Generates encryption keys with high quality entropy. + This can be disabled using --fast to get the old behavior. + The assistant still uses low-quality entropy when creating encrypted + remotes, to avoid delays. (Thanks, guilhem for the patch.) + * Bugfix: Direct mode no longer repeatedly checksums duplicated files. + * assistant: Work around horrible, terrible, very bad behavior of + gnome-keyring, by not storing special-purpose ssh keys in ~/.ssh/*.pub. + Apparently gnome-keyring apparently will load and indiscriminately use + such keys in some cases, even if they are not using any of the standard + ssh key names. Instead store the keys in ~/.ssh/annex/, + which gnome-keyring will not check. + * addurl: Bugfix: Did not properly add file in direct mode. + * assistant: Bug fix to avoid annexing the files that git uses + to stand in for symlinks on FAT and other filesystem not supporting + symlinks. + * Adjust preferred content expressions so that content in archive + directories is preferred until it has reached an archive or smallarchive + repository. + * webapp: New --listen= option allows running the webapp on one computer + and connecting to it from another. (Note: Does not yet use HTTPS.) + * Added annex.web-download-command setting. + * Added per-remote annex-rsync-transport option. (guilhem again) + * Ssh connection caching is now also used by rsync special remotes. + (guilhem yet again) + * The version number is now derived from git, unless built with + VERSION_FROM_CHANGELOG. + * assistant: Stop any transfers the assistant initiated on shutdown. + * assistant: Added sequence numbers to XMPP git push packets. (Not yet used.) + * addurl: Register transfer so the webapp can see it. + * addurl: Automatically retry downloads that fail, as long as some + additional content was downloaded. + * webapp: Much improved progress bar display for downloads from encrypted + remotes. + * Avoid using runghc, as that needs ghci. + * webapp: When a repository's group is changed, rescan for transfers. + * webapp: Added animations. + * webapp: Include the repository directory in the mangled hostname and + ssh key name, so that a locked down ssh key for one repository is not + re-used when setting up additional repositories on the same server. + * Fall back to internal url downloader when built without curl. + * fsck: Check content of direct mode files (only when the inode cache + thinks they are unmodified). + + -- Joey Hess Wed, 17 Apr 2013 09:07:38 -0400 + +git-annex (4.20130405) unstable; urgency=low + + * Group subcommands into sections in usage. Closes: #703797 + * Per-command usage messages. + * webapp: Fix a race that sometimes caused alerts or other notifications + to be missed if they occurred while a page was loading. + * webapp: Progess bar fixes for many types of special remotes. + * Build debian package without using cabal, which writes to HOME. + Closes: #704205 + * webapp: Run ssh server probes in a way that will work when the + login shell is a monstrosity that should have died 25 years ago, + such as csh. + * New annex.largefiles setting, which configures which files + `git annex add` and the assistant add to the annex. + * assistant: Check small files into git directly. + * Remotes can be configured to use other MAC algorithms than HMACSHA1 + to encrypt filenames. + Thanks, guilhem for the patch. + * git-annex-shell: Passes rsync --bwlimit options on rsync. + Thanks, guilhem for the patch. + * webapp: Added UI to delete repositories. Closes: #689847 + * Adjust built-in preferred content expressions to make most types + of repositories want content that is only located on untrusted, dead, + and unwanted repositories. + * drop --auto: Fix bug that prevented dropping files from untrusted + repositories. + * assistant: Fix bug that could cause direct mode files to be unstaged + from git. + * Update working tree files fully atomically. + * webapp: Improved transfer queue management. + * init: Probe whether the filesystem supports fifos, and if not, + disable ssh connection caching. + * Use lower case hash directories for storing files on crippled filesystems, + same as is already done for bare repositories. + + -- Joey Hess Fri, 05 Apr 2013 10:42:18 -0400 + +git-annex (4.20130323) unstable; urgency=low + + * webapp: Repository list is now included in the dashboard, and other + UI tweaks. + * webapp: Improved UI for pairing your own devices together using XMPP. + * webapp: Display an alert when there are XMPP remotes, and a cloud + transfer repository needs to be configured. + * Add incrementalbackup repository group. + * webapp: Encourage user to install git-annex on a server when adding + a ssh server, rather than just funneling them through to rsync. + * xmpp: --debug now enables a sanitized dump of the XMPP protocol + * xmpp: Try harder to detect presence of clients when there's a git push + to send. + * xmpp: Re-enable XA flag, since disabling it did not turn out to help + with the problems Google Talk has with not always sending presence + messages to clients. + * map: Combine duplicate repositories, for a nicer looking map. + * Fix several bugs caused by a bad Ord instance for Remote. + * webapp: Switch all forms to POST. + * assistant: Avoid syncing with annex-ignored remotes when reconnecting + to the network, or connecting a drive. + * assistant: Fix OSX bug that prevented committing changed files to a + repository when in indirect mode. + * webapp: Improved alerts displayed when syncing with remotes, and + when syncing with a remote fails. + * webapp: Force wrap long filenames in transfer display. + * assistant: The ConfigMonitor left one zombie behind each time + it checked for changes, now fixed. + * get, copy, move: Display an error message when an identical transfer + is already in progress, rather than failing with no indication why. + * assistant: Several optimisations to file transfers. + * OSX app and standalone Linux tarball now both support being added to + PATH; no need to use runshell to start git-annex. + * webapp: When adding a removable drive, you can now specify the + directory inside it to use. + * webapp: Confirm whether user wants to combine repositories when + adding a removable drive that already has a repository on it. + + -- Joey Hess Fri, 22 Mar 2013 18:54:05 -0400 + +git-annex (4.20130314) unstable; urgency=low + + * Bugfix: git annex add, when ran without any file or directory specified, + should add files in the current directory, but not act on unlocked files + elsewhere in the tree. + * Bugfix: drop --from an unavailable remote no longer updates the location + log, incorrectly, to say the remote does not have the key. + * Bugfix: If the UUID of a remote is not known, prevent --from, --to, + and other ways of specifying remotes by name from selecting it, + since it is not possible to sanely use it. + * Bugfix: Fix bug in inode cache sentinal check, which broke + copying to local repos if the repo being copied from had moved + to a different filesystem or otherwise changed all its inodes + + * Switch from using regex-compat to regex-tdfa, as the C regex library + is rather buggy. + * status: Can now be run with a directory path to show only the + status of that directory, rather than the whole annex. + * Added remote..annex-gnupg-options setting. + Thanks, guilhem for the patch. + * addurl: Add --relaxed option. + * addurl: Escape invalid characters in urls, rather than failing to + use an invalid url. + * addurl: Properly handle url-escaped characters in file:// urls. + + * assistant: Fix dropping content when a file is moved to an archive + directory, and getting contennt when a file is moved back out. + * assistant: Fix bug in direct mode that could occur when a symlink is + moved out of an archive directory, and resulted in the file not being + set to direct mode when it was transferred. + * assistant: Generate better commits for renames. + * assistant: Logs are rotated to avoid them using too much disk space. + * assistant: Avoid noise in logs from git commit about typechanged + files in direct mode repositories. + * assistant: Set gc.auto=0 when creating repositories to prevent + automatic commits from causing git-gc runs. + * assistant: If gc.auto=0, run git-gc once a day, packing loose objects + very non-aggressively. + * assistant: XMPP git pull and push requests are cached and sent when + presence of a new client is detected. + * assistant: Sync with all git remotes on startup. + * assistant: Get back in sync with XMPP remotes after network reconnection, + and on startup. + * assistant: Fix syncing after XMPP pairing. + * assistant: Optimised handling of renamed files in direct mode, + avoiding re-checksumming. + * assistant: Detects most renames, including directory renames, and + combines all their changes into a single commit. + * assistant: Fix ~/.ssh/git-annex-shell wrapper to work when the + ssh key does not force a command. + * assistant: Be smarter about avoiding unncessary transfers. + + * webapp: Work around bug in Warp's slowloris attack prevention code, + that caused regular browsers to stall when they reuse a connection + after leaving it idle for 30 seconds. + (See https://github.com/yesodweb/wai/issues/146) + * webapp: New preferences page allows enabling/disabling debug logging + at runtime, as well as configuring numcopies and diskreserve. + * webapp: Repository costs can be configured by dragging repositories around + in the repository list. + * webapp: Proceed automatically on from "Configure jabber account" + to pairing. + * webapp: Only show up to 10 queued transfers. + * webapp: DTRT when told to create a git repo that already exists. + * webapp: Set locally paired repositories to a lower cost than other + network remotes. + + * Run ssh with -T to avoid tty allocation and any login scripts that + may do undesired things with it. + * Several improvements to Makefile and cabal file. Thanks, Peter Simmons + * Stop depending on testpack. + * Android: Enable test suite. + + -- Joey Hess Thu, 14 Mar 2013 15:29:20 -0400 + +git-annex (4.20130227) unstable; urgency=low + + * annex.version is now set to 4 for direct mode repositories. + * Should now fully support git repositories with core.symlinks=false; + always using git's pseudosymlink files in such repositories. + * webapp: Allow creating repositories on filesystems that lack support for + symlinks. + * webapp: Can now add a new local repository, and make it sync with + the main local repository. + * Android: Bundle now includes openssh. + * Android: Support ssh connection caching. + * Android: Assistant is fully working. (But no webapp yet.) + * Direct mode: Support filesystems like FAT which can change their inodes + each time they are mounted. + * Direct mode: Fix support for adding a modified file. + * Avoid passing -p to rsync, to interoperate with crippled filesystems. + Closes: #700282 + * Additional GIT_DIR support bugfixes. May actually work now. + * webapp: Display any error message from git init if it fails to create + a repository. + * Fix a reversion in matching globs introduced in the last release, + where "*" did not match files inside subdirectories. No longer uses + the Glob library. + * copy: Update location log when no copy was performed, if the location + log was out of date. + * Makefile now builds using cabal, taking advantage of cabal's automatic + detection of appropriate build flags. + * test: The test suite is now built into the git-annex binary, and can + be run at any time. + + -- Joey Hess Wed, 27 Feb 2013 14:07:24 -0400 + +git-annex (3.20130216) unstable; urgency=low + + * Now uses the Haskell uuid library, rather than needing a uuid program. + * Now uses the Haskell Glob library, rather than pcre-light, avoiding + the need to install libpcre. Currently done only for Cabal or when + the Makefile is made to use -DWITH_GLOB + * Android port now available (command-line only). + * New annex.crippledfilesystem setting, allows use of git-annex + repositories on FAT and even worse filesystems; avoiding use of + hard links and locked down permissions settings. (Support is incomplete.) + * init: Detect when the repository is on a filesystem that does not + support hard links, or symlinks, or unix permissions, and set + annex.crippledfilesystem, as well as annex.direct. + * add: Improved detection of files that are modified while being added. + * Fix a bug in direct mode, introduced in the previous release, where + if a file was dropped and then got back, it would be stored in indirect + mode. + + -- Joey Hess Sat, 16 Feb 2013 10:03:26 -0400 + +git-annex (3.20130207) unstable; urgency=low + + * webapp: Now allows restarting any threads that crash. + * Adjust debian package to only build-depend on DAV on architectures + where it is available. + * addurl --fast: Use curl, rather than haskell HTTP library, to support https. + * annex.autocommit: New setting, can be used to disable autocommit + of changed files by the assistant, while it still does data syncing + and other tasks. + * assistant: Ignore .DS_Store on OSX. + * assistant: Fix location log when adding new file in direct mode. + * Deal with stale mappings for deleted file in direct mode. + * pre-commit: Update direct mode mappings. + * uninit, unannex --fast: If hard link creation fails, fall back to slow + mode. + * Clean up direct mode cache and mapping info when dropping keys. + * dropunused: Clean up stale direct mode cache and mapping info not + removed before. + + -- Joey Hess Thu, 07 Feb 2013 12:45:25 -0400 + +git-annex (3.20130124) unstable; urgency=low + + * Added source repository group, that only retains files until they've + been transferred to another repository. Useful for things like + repositories on cameras. + * Added manual repository group. Use to prevent the assistant from + downloading any file contents to keep things in sync. Instead + `git annex get`, `git annex drop` etc can be used manually as desired. + * webapp: More adjustments to longpoll code to deal with changes in + variable quoting in different versions of shakespeare-js. + * webapp: Avoid an error if a transfer is stopped just as it finishes. + Closes: #698184 + * webapp: Now always logs to .git/annex/daemon.log + * webapp: Has a page to view the log, accessed from the control menu. + * webapp: Fix crash adding removable drive that has an annex directory + in it that is not a git repository. + * Deal with incompatability in gpg2, which caused prompts for encryption + passphrases rather than using the supplied --passphrase-fd. + * bugfix: Union merges involving two or more repositories could sometimes + result in data from one repository getting lost. This could result + in the location log data becoming wrong, and fsck being needed to fix it. + * sync: Automatic merge conflict resolution now stages deleted files. + * Depend on git 1.7.7.6 for --no-edit. Closes: #698399 + * Fix direct mode mapping code to always store direct mode filenames + relative to the top of the repository, even when operating inside a + subdirectory. + * fsck: Detect and fix consistency errors in direct mode mapping files. + * Avoid filename encoding errors when writing direct mode mappings. + + -- Joey Hess Tue, 22 Jan 2013 07:11:59 +1100 + +git-annex (3.20130114) unstable; urgency=low + + * Now handles the case where a file that's being transferred to a remote + is modified in place, which direct mode allows. When this + happens, the transfer now fails, rather than allow possibly corrupt + data into the remote. + * fsck: Better checking of file content in direct mode. + * drop: Suggest using git annex move when numcopies prevents dropping a file. + * webapp: Repo switcher filters out repos that do not exist any more + (or are on a drive that's not mounted). + * webapp: Use IP address, rather than localhost, since some systems may + have configuration problems or other issues that prevent web browsers + from connecting to the right localhost IP for the webapp. + * webapp: Adjust longpoll code to work with recent versions of + shakespeare-js. + * assistant: Support new gvfs dbus names used in Gnome 3.6. + * In direct mode, files with the same key are no longer hardlinked, as + that would cause a surprising behavior if modifying one, where the other + would also change. + * webapp: Avoid illegal characters in hostname when creating S3 or + Glacier remote. + * assistant: Avoid committer crashing if a file is deleted at the wrong + instant. + + -- Joey Hess Mon, 14 Jan 2013 15:25:18 -0400 + +git-annex (3.20130107) unstable; urgency=low + + * webapp: Add UI to stop and restart assistant. + * committer: Fix a file handle leak. + * assistant: Make expensive transfer scan work fully in direct mode. + * More commands work in direct mode repositories: find, whereis, move, copy, + drop, log, fsck, add, addurl. + * sync: No longer automatically adds files in direct mode. + * assistant: Detect when system is not configured with a user name, + and set environment to prevent git from failing. + * direct: Avoid hardlinking symlinks that point to the same content + when the content is not present. + * Fix transferring files to special remotes in direct mode. + + -- Joey Hess Mon, 07 Jan 2013 01:01:41 -0400 + +git-annex (3.20130102) unstable; urgency=low + + * direct, indirect: New commands, that switch a repository to and from + direct mode. In direct mode, files are accessed directly, rather than + via symlinks. Note that direct mode is currently experimental. Many + git-annex commands do not work in direct mode. Some git commands can + cause data loss when used in direct mode repositories. + * assistant: Now uses direct mode by default when setting up a new + local repository. + * OSX assistant: Uses the FSEvents API to detect file changes. + This avoids issues with running out of file descriptors on large trees, + as well as allowing detection of modification of files in direct mode. + Other BSD systems still use kqueue. + * kqueue: Fix bug that made broken symlinks not be noticed. + * vicfg: Quote filename. Closes: #696193 + * Bugfix: Fixed bug parsing transfer info files, where the newline after + the filename was included in it. This was generally benign, but in + the assistant, it caused unexpected dropping of preferred content. + * Bugfix: Remove leading \ from checksums output by sha*sum commands, + when the filename contains \ or a newline. Closes: #696384 + * fsck: Still accept checksums with a leading \ as valid, now that + above bug is fixed. + * SHA*E backends: Exclude non-alphanumeric characters from extensions. + * migrate: Remove leading \ in SHA* checksums, and non-alphanumerics + from extensions of SHA*E keys. + + -- Joey Hess Wed, 02 Jan 2013 13:21:34 -0400 + +git-annex (3.20121211) unstable; urgency=low + + * webapp: Defaults to sharing box.com account info with friends, allowing + one-click enabling of the repository. + * Fix broken .config/git-annex/program installed by standalone tarball. + * assistant: Retrival from glacier now handled. + * Include ssh in standalone tarball and OSX app. + * watch: Avoid leaving hard links to files behind in .git/annex/tmp + if a file is deleted or moved while it's being quarantined in preparation + to being added to the annex. + * Allow `git annex drop --from web`; of course this does not remove + any file from the web, but it does make git-annex remove all urls + associated with a file. + * webapp: S3 and Glacier forms now have a select list of all + currently-supported AWS regions. + * webdav: Avoid trying to set props, avoiding incompatability with + livedrive.com. Needs DAV version 0.3. + * webapp: Prettify error display. + * webapp: Fix bad interaction between required fields and modals. + * webapp: Added help buttons and links next to fields that require + explanations. + * webapp: Encryption can be disabled when setting up remotes. + * assistant: Avoid trying to drop content from remotes that don't have it. + * assistant: Allow periods in ssh key comments. + * get/copy --auto: Transfer data even if it would exceed numcopies, + when preferred content settings want it. + * drop --auto: Fix dropping content when there are no preferred content + settings. + * webapp: Allow user to specify the port when setting up a ssh or rsync + remote. + * assistant: Fix syncing to just created ssh remotes. + * Enable WebDAV support in Debian package. Closes: #695532 + + -- Joey Hess Tue, 11 Dec 2012 11:25:03 -0400 + +git-annex (3.20121127) unstable; urgency=low + + * Fix dirContentsRecursive, which had missed some files in deeply nested + subdirectories. Could affect various parts of git-annex. + * rsync: Fix bug introduced in last release that broke encrypted rsync + special remotes. + * The standalone builds now unset their special path and library path + variables before running the system web browser. + + -- Joey Hess Tue, 27 Nov 2012 17:07:32 -0400 + +git-annex (3.20121126) unstable; urgency=low + + * New webdav and Amazon glacier special remotes. + * Display a warning when a non-existing file or directory is specified. + * webapp: Added configurator for Box.com. + * webapp: Show error messages to user when testing XMPP creds. + * Fix build of assistant without yesod. + * webapp: The list of repositiories refreshes when new repositories are + added, including when new repository configurations are pushed in from + remotes. + * OSX: Fix RunAtLoad value in plist file. + * Getting a file from chunked directory special remotes no longer buffers + it all in memory. + * S3: Added progress display for uploading and downloading. + * directory special remote: Made more efficient and robust. + * Bugfix: directory special remote could loop forever storing a key + when a too small chunksize was configured. + * Allow controlling whether login credentials for S3 and webdav are + committed to the repository, by setting embedcreds=yes|no when running + initremote. + * Added smallarchive repository group, that only archives files that are + in archive directories. Used by default for glacier when set up in the + webapp. + * assistant: Fixed handling of toplevel archive directory and + client repository group. + * assistant: Apply preferred content settings when a new symlink + is created, or a symlink gets renamed. Made archive directories work. + + -- Joey Hess Mon, 26 Nov 2012 11:37:49 -0400 + +git-annex (3.20121112) unstable; urgency=low + + * assistant: Can use XMPP to notify other nodes about pushes made to other + repositories, as well as pushing to them directly over XMPP. + * wepapp: Added an XMPP configuration interface. + * webapp: Supports pairing over XMPP, with both friends, and other repos + using the same account. + * assistant: Drops non-preferred content when possible. + * assistant: Notices, and applies config changes as they are made to + the git-annex branch, including config changes pushed in from remotes. + * git-annex-shell: GIT_ANNEX_SHELL_DIRECTORY can be set to limit it + to operating on a specified directory. + * webapp: When setting up authorized_keys, use GIT_ANNEX_SHELL_DIRECTORY. + * Preferred content path matching bugfix. + * Preferred content expressions cannot use "in=". + * Preferred content expressions can use "present". + * Fix handling of GIT_DIR when it refers to a git submodule. + * Depend on and use the Haskell SafeSemaphore library, which provides + exception-safe versions of SampleVar and QSemN. + Thanks, Ben Gamari for an excellent patch set. + * file:/// URLs can now be used with the web special remote. + * webapp: Allow dashes in ssh key comments when pairing. + * uninit: Check and abort if there are symlinks to annexed content that + are not checked into git. + * webapp: Switched to using the same multicast IP address that avahi uses. + * bup: Don't pass - to bup-split to make it read stdin; bup 0.25 + does not accept that. + * bugfix: Don't fail transferring content from read-only repos. + Closes: #691341 + * configure: Check that checksum programs produce correct checksums. + * Re-enable dbus, using a new version of the library that fixes the memory + leak. + * NetWatcher: When dbus connection is lost, try to reconnect. + * Use USER and HOME environment when set, and only fall back to getpwent, + which doesn't work with LDAP or NIS. + * rsync special remote: Include annex-rsync-options when running rsync + to test a key's presence. + * The standalone tarball's runshell now takes care of installing a + ~/.ssh/git-annex-shell wrapper the first time it's run. + * webapp: Make an initial, empty commit so there is a master branch + * assistant: Fix syncing local drives. + * webapp: Fix creation of rsync.net repositories. + * webapp: Fix renaming of special remotes. + * webapp: Generate better git remote names. + * webapp: Ensure that rsync special remotes are enabled using the same + name they were originally created using. + * Bugfix: Fix hang in webapp when setting up a ssh remote with an absolute + path. + + -- Joey Hess Mon, 12 Nov 2012 10:39:47 -0400 + +git-annex (3.20121017) unstable; urgency=low + + * Fix zombie cleanup reversion introduced in 3.20121009. + * Additional fix to support git submodules. + + -- Joey Hess Tue, 16 Oct 2012 21:10:14 -0400 + +git-annex (3.20121016) unstable; urgency=low + + * vicfg: New file format, avoids ambiguity with repos that have the same + description, or no description. + * Bug fix: A recent change caused git-annex-shell to crash. + * Better preferred content expression for transfer repos. + * webapp: Repository edit form can now edit the name of a repository. + * webapp: Make bare repositories on removable drives, as there is nothing + to ensure non-bare repos get updated when syncing. + * webapp: Better behavior when pausing syncing to a remote when a transfer + scan is running and queueing new transfers for that remote. + * The standalone binaries are now built to not use ssh connection caching, + in order to work with old versions of ssh. + * A relative core.worktree is relative to the gitdir. Now that this is + handled correctly, git-annex can be used in git submodules. + * Temporarily disable use of dbus, as the haskell dbus library blows up + when losing connection, which will need to be fixed upstream. + + -- Joey Hess Tue, 16 Oct 2012 15:25:22 -0400 + +git-annex (3.20121010) unstable; urgency=low + + * Renamed --ingroup to --inallgroup. + * Standard groups changed to client, transfer, archive, and backup. + Each of these has its own standard preferred content setting. + * dead: Remove dead repository from all groups. + * Avoid unsetting HOME when running certian git commands. Closes: #690193 + * test: Fix threaded runtime hang. + * Makefile: Avoid building with -threaded if the ghc threaded runtime does + not exist. + * webapp: Improve wording of intro display. Closes: #689848 + * webapp: Repositories can now be configured, to change their description, + their group, or even to disable syncing to them. + * git config remote.name.annex-sync can be used to control whether + a remote gets synced. + * Fix a crash when merging files in the git-annex branch that contain + invalid utf8. + * Automatically detect when a ssh remote does not have git-annex-shell + installed, and set annex-ignore. + + -- Joey Hess Fri, 12 Oct 2012 13:45:21 -0400 + +git-annex (3.20121009) unstable; urgency=low + + * watch, assistant: It's now safe to git annex unlock files while + the watcher is running, as well as modify files checked into git + as normal files. Additionally, .gitignore settings are now honored. + Closes: #689979 + * group, ungroup: New commands to indicate groups of repositories. + * webapp: Adds newly created repositories to one of these groups: + clients, drives, servers + * vicfg: New command, allows editing (or simply viewing) most + of the repository configuration settings stored in the git-annex branch. + * Added preferred content expressions, configurable using vicfg. + * get --auto: If the local repository has preferred content + configured, only get that content. + * drop --auto: If the repository the content is dropped from has + preferred content configured, drop only content that is not preferred. + * copy --auto: Only transfer content that the destination repository prefers. + * assistant: Now honors preferred content settings when deciding what to + transfer. + * --copies=group:number can now be used to match files that are present + in a specified number of repositories in a group. + * Added --smallerthan, --largerthan, and --inall limits. + * Only build-depend on libghc-clientsession-dev on arches that will have + the webapp. + * uninit: Unset annex.version. Closes: #689852 + + -- Joey Hess Tue, 09 Oct 2012 15:13:23 -0400 + +git-annex (3.20121001) unstable; urgency=low + + * fsck: Now has an incremental mode. Start a new incremental fsck pass + with git annex fsck --incremental. Now the fsck can be interrupted + as desired, and resumed with git annex fsck --more. + Thanks, Justin Azoff + * New --time-limit option, makes long git-annex commands stop after + a specified amount of time. + * fsck: New --incremental-schedule option which is nice for scheduling + eg, monthly incremental fsck runs in cron jobs. + * Fix fallback to ~/Desktop when xdg-user-dir is not available. + Closes: #688833 + * S3: When using a shared cipher, S3 credentials are not stored encrypted + in the git repository, as that would allow anyone with access to + the repository access to the S3 account. Instead, they're stored + in a 600 mode file in the local git repo. + * webapp: Avoid crashing when ssh-keygen -F chokes on an invalid known_hosts + file. + * Always do a system wide installation when DESTDIR is set. Closes: #689052 + * The Makefile now builds with the new yesod by default. + Systems like Debian that have the old yesod 1.0.1 should set + GIT_ANNEX_LOCAL_FEATURES=-DWITH_OLD_YESOD + * copy: Avoid updating the location log when no copy is performed. + * configure: Test that uuid -m works, falling back to plain uuid if not. + * Avoid building the webapp on Debian architectures that do not yet + have template haskell and thus yesod. (Should be available for arm soonish + I hope). + + -- Joey Hess Mon, 01 Oct 2012 13:56:55 -0400 + +git-annex (3.20120924) unstable; urgency=low + + * assistant: New command, a daemon which does everything watch does, + as well as automatically syncing file contents between repositories. + * webapp: An interface for managing and configuring the assistant. + * The default backend used when adding files to the annex is changed + from SHA256 to SHA256E, to simplify interoperability with OSX, media + players, and various programs that needlessly look at symlink targets. + To get old behavior, add a .gitattributes containing: * annex.backend=SHA256 + * init: If no description is provided for a new repository, one will + automatically be generated, like "joey@gnu:~/foo" + * test: Set a lot of git environment variables so testing works in strange + environments that normally need git config to set names, etc. + Closes: #682351 Thanks, gregor herrmann + * Disable ssh connection caching if the path to the control socket would be + too long (and use relative path to minimise path to the control socket). + * migrate: Check content before generating the new key, to avoid generating + a key for corrupt data. + * Support repositories created with --separate-git-dir. Closes: #684405 + * reinject: When the provided file doesn't match, leave it where it is, + rather than moving to .git/annex/bad/ + * Avoid crashing on encoding errors in filenames when writing transfer info + files and reading from checksum commands. + * sync: Pushes the git-annex branch to remote/synced/git-annex, rather + than directly to remote/git-annex. + * Now supports matching files that are present on a number of remotes + with a specified trust level. Example: --copies=trusted:2 + Thanks, Nicolas Pouillard + + -- Joey Hess Mon, 24 Sep 2012 13:47:48 -0400 + +git-annex (3.20120825) unstable; urgency=low + + * S3: Add fileprefix setting. + * Pass --use-agent to gpg when in no tty mode. Thanks, Eskild Hustvedt. + * Bugfix: Fix fsck in SHA*E backends, when the key contains composite + extensions, as added in 3.20120721. + + -- Joey Hess Sat, 25 Aug 2012 10:00:10 -0400 + +git-annex (3.20120807) unstable; urgency=low + + * initremote: Avoid recording remote's description before checking + that its config is valid. + * unused, status: Avoid crashing when ran in bare repo. + * Avoid crashing when "git annex get" fails to download from one + location, and falls back to downloading from a second location. + + -- Joey Hess Tue, 07 Aug 2012 13:35:07 -0400 + +git-annex (3.20120721) unstable; urgency=low + + * get, move, copy: Now refuse to do anything when the requested file + transfer is already in progress by another process. + * status: Lists transfers that are currently in progress. + * Fix passing --uuid to git-annex-shell. + * When shaNsum commands cannot be found, use the Haskell SHA library + (already a dependency) to do the checksumming. This may be slower, + but avoids portability problems. + * Use SHA library for files less than 50 kb in size, at which point it's + faster than forking the more optimised external program. + * SHAnE backends are now smarter about composite extensions, such as + .tar.gz Closes: #680450 + * map: Write map.dot to .git/annex, which avoids watch trying to annex it. + + -- Joey Hess Sat, 21 Jul 2012 16:52:48 -0400 + +git-annex (3.20120629) unstable; urgency=low + + * cabal: Only try to use inotify on Linux. + * Version build dependency on STM, and allow building without it, + which disables the watch command. + * Avoid ugly failure mode when moving content from a local repository + that is not available. + * Got rid of the last place that did utf8 decoding. + * Accept arbitrarily encoded repository filepaths etc when reading + git config output. This fixes support for remotes with unusual characters + in their names. + * sync: Automatically resolves merge conflicts. + + -- Joey Hess Fri, 29 Jun 2012 10:17:49 -0400 + +git-annex (3.20120624) unstable; urgency=low + + * watch: New subcommand, a daemon which notices changes to + files and automatically annexes new files, etc, so you don't + need to manually run git commands when manipulating files. + Available on Linux, BSDs, and OSX! + * Enable diskfree on kfreebsd, using kqueue. + * unused: Fix crash when key names contain invalid utf8. + * sync: Avoid recent git's interactive merge. + + -- Joey Hess Sun, 24 Jun 2012 12:36:50 -0400 + +git-annex (3.20120614) unstable; urgency=medium + + * addurl: Was broken by a typo introduced 2 released ago, now fixed. + Closes: #677576 + * Install man page when run by cabal, in a location where man will + find it, even when installing under $HOME. Thanks, Nathan Collins + + -- Joey Hess Thu, 14 Jun 2012 20:21:29 -0400 + +git-annex (3.20120611) unstable; urgency=medium + + * add: Prevent (most) modifications from being made to a file while it + is being added to the annex. + * initremote: Automatically describe a remote when creating it. + * uninit: Refuse to run in a subdirectory. Closes: #677076 + + -- Joey Hess Mon, 11 Jun 2012 10:32:01 -0400 + +git-annex (3.20120605) unstable; urgency=low + + * sync: Show a nicer message if a user tries to sync to a special remote. + * lock: Reset unlocked file to index, rather than to branch head. + * import: New subcommand, pulls files from a directory outside the annex + and adds them. + * Fix display of warning message when encountering a file that uses an + unsupported backend. + * Require that the SHA256 backend can be used when building, since it's the + default. + * Preserve parent environment when running hooks of the hook special remote. + + -- Joey Hess Tue, 05 Jun 2012 14:03:39 -0400 + +git-annex (3.20120522) unstable; urgency=low + + * Pass -a to cp even when it supports --reflink=auto, to preserve + permissions. + * Clean up handling of git directory and git worktree. + * Add support for core.worktree, and fix support for GIT_WORK_TREE and + GIT_DIR. + + -- Joey Hess Tue, 22 May 2012 11:16:13 -0400 + +git-annex (3.20120511) unstable; urgency=low + + * Rsync special remotes can be configured with shellescape=no + to avoid shell quoting that is normally done when using rsync over ssh. + This is known to be needed for certian rsync hosting providers + (specificially hidrive.strato.com) that use rsync over ssh but do not + pass it through the shell. + * dropunused: Allow specifying ranges to drop. + * addunused: New command, the opposite of dropunused, it relinks unused + content into the git repository. + * Fix use of several config settings: annex.ssh-options, + annex.rsync-options, annex.bup-split-options. (And adjust types to avoid + the bugs that broke several config settings.) + + -- Joey Hess Fri, 11 May 2012 12:29:30 -0400 + +git-annex (3.20120430) unstable; urgency=low + + * Fix use of annex.diskreserve config setting. + * Directory special remotes now check annex.diskreserve. + * Support git's core.sharedRepository configuration. + * Add annex.http-headers and annex.http-headers-command config + settings, to allow custom headers to be sent with all HTTP requests. + (Requested by the Internet Archive) + * uninit: Clear annex.uuid from .git/config. Closes: #670639 + * Added shared cipher mode to encryptable special remotes. This option + avoids gpg key distribution, at the expense of flexability, and with + the requirement that all clones of the git repository be equally trusted. + + -- Joey Hess Mon, 30 Apr 2012 13:16:10 -0400 + +git-annex (3.20120418) unstable; urgency=low + + * bugfix: Adding a dotfile also caused all non-dotfiles to be added. + * bup: Properly handle key names with spaces or other things that are + not legal git refs. + * git-annex (but not git-annex-shell) supports the git help.autocorrect + configuration setting, doing fuzzy matching using the restricted + Damerau-Levenshtein edit distance, just as git does. This adds a build + dependency on the haskell edit-distance library. + * Renamed diskfree.c to avoid OSX case insensativity bug. + * cabal now installs git-annex-shell as a symlink to git-annex. + * cabal file now autodetects whether S3 support is available. + + -- Joey Hess Wed, 18 Apr 2012 12:11:32 -0400 + +git-annex (3.20120406) unstable; urgency=low + + * Disable diskfree on kfreebsd, as I have a build failure on kfreebsd-i386 + that is quite likely caused by it. + + -- Joey Hess Sat, 07 Apr 2012 15:50:36 -0400 + +git-annex (3.20120405) unstable; urgency=low + + * Rewrote free disk space checking code, moving the portability + handling into a small C library. + * status: Display amount of free disk space. + + -- Joey Hess Thu, 05 Apr 2012 16:19:10 -0400 + +git-annex (3.20120315) unstable; urgency=low + + * fsck: Fix up any broken links and misplaced content caused by the + directory hash calculation bug fixed in the last release. + * sync: Sync to lower cost remotes first. + * status: Fixed to run in constant space. + * status: More accurate display of sizes of tmp and bad keys. + * unused: Now uses a bloom filter, and runs in constant space. + Use of a bloom filter does mean it will not notice a small + number of unused keys. For repos with up to half a million keys, + it will miss one key in 1000. + * Added annex.bloomcapacity and annex.bloomaccuracy, which can be + adjusted as desired to tune the bloom filter. + * status: Display amount of memory used by bloom filter, and + detect when it's too small for the number of keys in a repository. + * git-annex-shell: Runs hooks/annex-content after content is received + or dropped. + * Work around a bug in rsync (IMHO) introduced by openSUSE's SIP patch. + * git-annex now behaves as git-annex-shell if symlinked to and run by that + name. The Makefile sets this up, saving some 8 mb of installed size. + * git-union-merge is a demo program, so it is no longer built by default. + + -- Joey Hess Thu, 15 Mar 2012 11:05:28 -0400 + +git-annex (3.20120309) unstable; urgency=low + + * Fix key directory hash calculation code to behave as it did before + version 3.20120227 when a key contains non-ascii characters (only + WORM backend is likely to have been affected). + + -- Joey Hess Fri, 09 Mar 2012 20:05:09 -0400 + +git-annex (3.20120230) unstable; urgency=low + + * "here" can be used to refer to the current repository, + which can read better than the old "." (which still works too). + * Directory special remotes now support chunking files written to them, + avoiding writing files larger than a specified size. + * Add progress bar display to the directory special remote. + * Add configurable hooks that are run when git-annex starts and stops + using a remote: remote.name.annex-start-command and + remote.name.annex-stop-command + * Fix a bug in symlink calculation code, that triggered in rare + cases where an annexed file is in a subdirectory that nearly + matched to the .git/annex/object/xx/yy subdirectories. + + -- Joey Hess Mon, 05 Mar 2012 13:38:13 -0400 + +git-annex (3.20120229) unstable; urgency=low + + * Fix test suite to not require a unicode locale. + * Fix cabal build failure. Thanks, Sergei Trofimovich + + -- Joey Hess Wed, 29 Feb 2012 02:31:31 -0400 + +git-annex (3.20120227) unstable; urgency=low + + * Modifications to support ghc 7.4's handling of filenames. + This version can only be built with ghc 7.4 or newer. See the ghc7.0 + branch for older ghcs. + * S3: Fix irrefutable pattern failure when accessing encrypted S3 + credentials. + * Use the haskell IfElse library. + * Fix teardown of stale cached ssh connections. + * Fixed to use the strict state monad, to avoid leaking all kinds of memory + due to lazy state update thunks when adding/fixing many files. + * Fixed some memory leaks that occurred when committing journal files. + * Added a annex.queuesize setting, useful when adding hundreds of thousands + of files on a system with plenty of memory. + * whereis: Prints the urls of files that the web special remote knows about. + * addurl --fast: Verifies that the url can be downloaded (only getting + its head), and records the size in the key. + * When checking that an url has a key, verify that the Content-Length, + if available, matches the size of the key. + * addurl: Added a --file option, which can be used to specify what + file the url is added to. This can be used to override the default + filename that is used when adding an url, which is based on the url. + Or, when the file already exists, the url is recorded as another + location of the file. + * addurl: Normalize badly encoded urls. + * addurl: Add --pathdepth option. + * rekey: New plumbing level command, can be used to change the keys used + for files en masse. + * Store web special remote url info in a more efficient location. + (Urls stored with this version will not be visible to older versions.) + * Deal with NFS problem that caused a failure to remove a directory + when removing content from the annex. + * Make a single location log commit after a remote has received or + dropped files. Uses a new "git-annex-shell commit" command when available. + * To avoid commits of data to the git-annex branch after each command + is run, set annex.alwayscommit=false. Its data will then be committed + less frequently, when a merge or sync is done. + * configure: Check if ssh connection caching is supported by the installed + version of ssh and default annex.sshcaching accordingly. + * move --from, copy --from: Now 10 times faster when scanning to find + files in a remote on a local disk; rather than go through the location log + to see which files are present on the remote, it simply looks at the + disk contents directly. + + -- Joey Hess Mon, 27 Feb 2012 12:58:21 -0400 + +git-annex (3.20120123) unstable; urgency=low + + * fsck --from: Fscking a remote is now supported. It's done by retrieving + the contents of the specified files from the remote, and checking them, + so can be an expensive operation. Still, if the remote is a special + remote, or a git repository that you cannot run fsck in locally, it's + nice to have the ability to fsck it. + * If you have any directory special remotes, now would be a good time to + fsck them, in case you were hit by the data loss bug fixed in the + previous release! + * fsck --from remote --fast: Avoids expensive file transfers, at the + expense of not checking file size and/or contents. + * Ssh connection caching is now enabled automatically by git-annex. + Only one ssh connection is made to each host per git-annex run, which + can speed some things up a lot, as well as avoiding repeated password + prompts. Concurrent git-annex processes also share ssh connections. + Cached ssh connections are shut down when git-annex exits. + * To disable the ssh caching (if for example you have your own broader + ssh caching configuration), set annex.sshcaching=false. + + -- Joey Hess Mon, 23 Jan 2012 13:48:48 -0400 + +git-annex (3.20120116) unstable; urgency=medium + + * Fix data loss bug in directory special remote, when moving a file + to the remote failed, and partially transferred content was left + behind in the directory, re-running the same move would think it + succeeded and delete the local copy. + + -- Joey Hess Mon, 16 Jan 2012 16:43:45 -0400 + +git-annex (3.20120115) unstable; urgency=low + + * Add a sanity check for bad StatFS results. On architectures + where StatFS does not currently work (s390, mips, powerpc, sparc), + this disables the diskreserve checking code, and attempting to + configure an annex.diskreserve will result in an error. + * Fix QuickCheck dependency in cabal file. + * Minor optimisations. + + -- Joey Hess Sun, 15 Jan 2012 13:54:20 -0400 + +git-annex (3.20120113) unstable; urgency=low + + * log: Add --gource mode, which generates output usable by gource. + * map: Fix display of remote repos + * Add annex-trustlevel configuration settings, which can be used to + override the trust level of a remote. + * git-annex, git-union-merge: Support GIT_DIR and GIT_WORK_TREE. + * Add libghc-testpack-dev to build depends on all arches. + + -- Joey Hess Fri, 13 Jan 2012 15:35:17 -0400 + +git-annex (3.20120106) unstable; urgency=low + + * Support unescaped repository urls, like git does. + * log: New command that displays the location log for files, + showing each repository they were added to and removed from. + * Fix overbroad gpg --no-tty fix from last release. + + -- Joey Hess Sat, 07 Jan 2012 13:16:23 -0400 + +git-annex (3.20120105) unstable; urgency=low + + * Added annex-web-options configuration settings, which can be + used to provide parameters to whichever of wget or curl git-annex uses + (depends on which is available, but most of their important options + suitable for use here are the same). + * Dotfiles, and files inside dotdirs are not added by "git annex add" + unless the dotfile or directory is explicitly listed. So "git annex add ." + will add all untracked files in the current directory except for those in + dotdirs. + * Added quickcheck to build dependencies, and fail if test suite cannot be + built. + * fsck: Do backend-specific check before checking numcopies is satisfied. + * Run gpg with --no-tty. Closes: #654721 + + -- Joey Hess Thu, 05 Jan 2012 13:44:12 -0400 + +git-annex (3.20111231) unstable; urgency=low + + * sync: Improved to work well without a central bare repository. + Thanks to Joachim Breitner. + * Rather than manually committing, pushing, pulling, merging, and git annex + merging, we encourage you to give "git annex sync" a try. + * sync --fast: Selects some of the remotes with the lowest annex.cost + and syncs those, in addition to any specified at the command line. + * Union merge now finds the least expensive way to represent the merge. + * reinject: Add a sanity check for using an annexed file as the source file. + * Properly handle multiline git config values. + * Fix the hook special remote, which bitrotted a while ago. + * map: --fast disables use of dot to display map + * Test suite improvements. Current top-level test coverage: 75% + * Improve deletion of files from rsync special remotes. Closes: #652849 + * Add --include, which is the same as --not --exclude. + * Format strings can be specified using the new --format option, to control + what is output by git annex find. + * Support git annex find --json + * Fixed behavior when multiple insteadOf configs are provided for the + same url base. + * Can now be built with older git versions (before 1.7.7); the resulting + binary should only be used with old git. + * Updated to build with monad-control 0.3. + + -- Joey Hess Sat, 31 Dec 2011 14:55:29 -0400 + +git-annex (3.20111211) unstable; urgency=medium + + * Fix bug in last version in getting contents from bare repositories. + * Ensure that git-annex branch changes are merged into git-annex's index, + which fixes a bug that could cause changes that were pushed to the + git-annex branch to get reverted. As a side effect, it's now safe + for users to check out and commit changes directly to the git-annex + branch. + * map: Fix a failure to detect a loop when both repositories are local + and refer to each other with relative paths. + * Prevent key names from containing newlines. + * add: If interrupted, add can leave files converted to symlinks but not + yet added to git. Running the add again will now clean up this situtation. + * Fix caching of decrypted ciphers, which failed when drop had to check + multiple different encrypted special remotes. + * unannex: Can be run on files that have been added to the annex, but not + yet committed. + * sync: New command that synchronises the local repository and default + remote, by running git commit, pull, and push for you. + * Version monad-control dependency in cabal file. + + -- Joey Hess Sun, 11 Dec 2011 21:24:39 -0400 + +git-annex (3.20111203) unstable; urgency=low + + * The VFAT filesystem on recent versions of Linux, when mounted with + shortname=mixed, does not get along well with git-annex's mixed case + .git/annex/objects hash directories. To avoid this problem, new content + is now stored in all-lowercase hash directories. Except for non-bare + repositories which would be a pain to transition and cannot be put on FAT. + (Old mixed-case hash directories are still tried for backwards + compatibility.) + * Flush json output, avoiding a buffering problem that could result in + doubled output. + * Avoid needing haskell98 and other fixes for new ghc. Thanks, Mark Wright. + * Bugfix: dropunused did not drop keys with two spaces in their name. + * Support for storing .git/annex on a different device than the rest of the + git repository. + * --inbackend can be used to make git-annex only operate on files + whose content is stored using a specified key-value backend. + * dead: A command which says that a repository is gone for good + and you don't want git-annex to mention it again. + + -- Joey Hess Sat, 03 Dec 2011 21:01:45 -0400 + +git-annex (3.20111122) unstable; urgency=low + + * merge: Improve commit messages to mention what was merged. + * Avoid doing auto-merging in commands that don't need fully current + information from the git-annex branch. In particular, git annex add + no longer needs to auto-merge. + * init: When run in an already initalized repository, and without + a description specified, don't delete the old description. + * Optimised union merging; now only runs git cat-file once, and runs + in constant space. + * status: Now displays trusted, untrusted, and semitrusted repositories + separately. + * status: Include all special remotes in the list of repositories. + * status: Fix --json mode. + * status: --fast is back + * Fix support for insteadOf url remapping. Closes: #644278 + * When not run in a git repository, git-annex can still display a usage + message, and "git annex version" even works. + * migrate: Don't fall over a stale temp file. + * Avoid excessive escaping for rsync special remotes that are not accessed + over ssh. + * find: Support --print0 + + -- Joey Hess Tue, 22 Nov 2011 14:31:45 -0400 + +git-annex (3.20111111) unstable; urgency=low + + * Handle a case where an annexed file is moved into a gitignored directory, + by having fix --force add its change. + * Avoid cyclic drop problems. + * Optimized copy --from and get --from to avoid checking the location log + for files that are already present. + * Automatically fix up badly formatted uuid.log entries produced by + 3.20111105, whenever the uuid.log is changed (ie, by init or describe). + * map: Support remotes with /~/ and /~user/ + + -- Joey Hess Fri, 11 Nov 2011 13:44:18 -0400 + +git-annex (3.20111107) unstable; urgency=low + + * merge: Use fast-forward merges when possible. + Thanks Valentin Haenel for a test case showing how non-fast-forward + merges could result in an ongoing pull/merge/push cycle. + * Don't try to read config from repos with annex-ignore set. + * Bugfix: In the past two releases, git-annex init has written the uuid.log + in the wrong format, with the UUID and description flipped. + + -- Joey Hess Mon, 07 Nov 2011 12:47:44 -0400 + +git-annex (3.20111105) unstable; urgency=low + + * The default backend used when adding files to the annex is changed + from WORM to SHA256. + To get old behavior, add a .gitattributes containing: * annex.backend=WORM + * Sped up some operations on remotes that are on the same host. + * copy --to: Fixed leak when copying many files to a remote on the same + host. + * uninit: Add guard against being run with the git-annex branch checked out. + * Fail if --from or --to is passed to commands that do not support them. + * drop --from is now supported to remove file content from a remote. + * status: Now always shows the current repository, even when it does not + appear in uuid.log. + * fsck: Now works in bare repositories. Checks location log information, + and file contents. Does not check that numcopies is satisfied, as + .gitattributes information about numcopies is not available in a bare + repository. + * unused, dropunused: Now work in bare repositories. + * Removed the setkey command, and added a reinject command with a more + useful interface. + * The fromkey command now takes the key as its first parameter. The --key + option is no longer used. + * Built without any filename containing .git being excluded. Closes: #647215 + * Record uuid when auto-initializing a remote so it shows in status. + * Bugfix: Fixed git-annex init crash in a bare repository when there was + already an existing git-annex branch. + * Pass -t to rsync to preserve timestamps. + + -- Joey Hess Sat, 05 Nov 2011 15:47:52 -0400 + +git-annex (3.20111025) unstable; urgency=low + + * A remote can have a annexUrl configured, that is used by git-annex + instead of its usual url. (Similar to pushUrl.) + * migrate: Copy url logs for keys when migrating. + * git-annex-shell: GIT_ANNEX_SHELL_READONLY and GIT_ANNEX_SHELL_LIMITED + environment variables can be set to limit what commands can be run. + This is used by gitolite's new git-annex support! + + -- Joey Hess Tue, 25 Oct 2011 13:03:08 -0700 + +git-annex (3.20111011) unstable; urgency=low + + * This version of git-annex only works with git 1.7.7 and newer. + The breakage with old versions is subtle, and affects the + annex.numcopies settings in .gitattributes, so be sure to upgrade git + to 1.7.7. (Debian package now depends on that version.) + * Don't pass absolute paths to git show-attr, as it started following + symlinks when that's done in 1.7.7. Instead, use relative paths, + which show-attr only handles 100% correctly in 1.7.7. Closes: #645046 + * Fix referring to remotes by uuid. + * New or changed repository descriptions in uuid.log now have a timestamp, + which is used to ensure the newest description is used when the uuid.log + has been merged. + * Note that older versions of git-annex will display the timestamp as part + of the repository description, which is ugly but otherwise harmless. + * Add timestamps to trust.log and remote.log too. + * git-annex-shell: Added the --uuid option. + * git-annex now asks git-annex-shell to verify that it's operating in + the expected repository. + * Note that this git-annex will not interoperate with remotes using + older versions of git-annex-shell. + * Now supports git's insteadOf configuration, to modify the url + used to access a remote. Note that pushInsteadOf is not used; + that and pushurl are reserved for actual git pushes. Closes: #644278 + * status: List all known repositories. + * When displaying a list of repositories, show git remote names + in addition to their descriptions. + * Add locking to avoid races when changing the git-annex branch. + * Various speed improvements gained by using ByteStrings. + * Contain the zombie hordes. + + -- Joey Hess Tue, 11 Oct 2011 23:00:02 -0400 + +git-annex (3.20110928) unstable; urgency=low + + * --in can be used to make git-annex only operate on files + believed to be present in a given repository. + * Arbitrarily complex expressions can be built to limit the files git-annex + operates on, by combining the options --not --and --or -( and -) + Example: git annex get --exclude '*.mp3' --and --not -( --in usbdrive --or --in archive -) + * --copies=N can be used to make git-annex only operate on files with + the specified number of copies. (And --not --copies=N for the inverse.) + * find: Rather than only showing files whose contents are present, + when used with --exclude --copies or --in, displays all files that + match the specified conditions. + * Note that this is a behavior change for git-annex find! Old behavior + can be gotten by using: git-annex find --in . + * status: Massively sped up; remove --fast mode. + * unused: File contents used by branches and tags are no longer + considered unused, even when not used by the current branch. This is + the final piece of the puzzle needed for git-annex to to play nicely + with branches. + + -- Joey Hess Wed, 28 Sep 2011 18:14:02 -0400 + +git-annex (3.20110915) unstable; urgency=low + + * whereis: Show untrusted locations separately and do not include in + location count. + * Fix build without S3. + * addurl: Always use whole url as destination filename, rather than + only its file component. + * get, drop, copy: Added --auto option, which decides whether + to get/drop content as needed to work toward the configured numcopies. + * bugfix: drop and fsck did not honor --exclude + + -- Joey Hess Thu, 15 Sep 2011 22:25:46 -0400 + +git-annex (3.20110906) unstable; urgency=low + + * Improve display of newlines around error and warning messages. + * Fix Makefile to work with cabal again. + + -- Joey Hess Tue, 06 Sep 2011 13:45:16 -0400 + +git-annex (3.20110902) unstable; urgency=low + + * Set EMAIL when running test suite so that git does not need to be + configured first. Closes: #638998 + * The wget command will now be used in preference to curl, if available. + * init: Make description an optional parameter. + * unused, status: Sped up by avoiding unnecessary stats of annexed files. + * unused --remote: Reduced memory use to 1/4th what was used before. + * Add --json switch, to produce machine-consumable output. + + -- Joey Hess Fri, 02 Sep 2011 21:20:37 -0400 + +git-annex (3.20110819) unstable; urgency=low + + * Now "git annex init" only has to be run once, when a git repository + is first being created. Clones will automatically notice that git-annex + is in use and automatically perform a basic initalization. It's + still recommended to run "git annex init" in any clones, to describe them. + * Added annex-cost-command configuration, which can be used to vary the + cost of a remote based on the output of a shell command. + * Fix broken upgrade from V1 repository. Closes: #638584 + + -- Joey Hess Fri, 19 Aug 2011 20:34:09 -0400 + +git-annex (3.20110817) unstable; urgency=low + + * Fix shell escaping in rsync special remote. + * addurl: --fast can be used to avoid immediately downloading the url. + * Added support for getting content from git remotes using http (and https). + * Added curl to Debian package dependencies. + + -- Joey Hess Wed, 17 Aug 2011 01:29:02 -0400 + +git-annex (3.20110719) unstable; urgency=low + + * add: Be even more robust to avoid ever leaving the file seemingly deleted. + Closes: #634233 + * Bugfix: Make add ../ work. + * Support the standard git -c name=value + * unannex: Clean up use of git commit -a. + + -- Joey Hess Tue, 19 Jul 2011 23:39:53 -0400 + +git-annex (3.20110707) unstable; urgency=low + + * Fix sign bug in disk free space checking. + * Bugfix: Forgot to de-escape keys when upgrading. Could result in + bad location log data for keys that contain [&:%] in their names. + (A workaround for this problem is to run git annex fsck.) + * add: Avoid a failure mode that resulted in the file seemingly being + deleted (content put in the annex but no symlink present). + + -- Joey Hess Thu, 07 Jul 2011 19:29:39 -0400 + +git-annex (3.20110705) unstable; urgency=low + + * uninit: Delete the git-annex branch and .git/annex/ + * unannex: In --fast mode, file content is left in the annex, and a + hard link made to it. + * uninit: Use unannex in --fast mode, to support unannexing multiple + files that link to the same content. + * Drop the dependency on the haskell curl bindings, use regular haskell HTTP. + * Fix a pipeline stall when upgrading (caused by #624389). + + -- Joey Hess Tue, 05 Jul 2011 14:37:39 -0400 + +git-annex (3.20110702) unstable; urgency=low + + * Now the web can be used as a special remote. + This feature replaces the old URL backend. + * addurl: New command to download an url and store it in the annex. + * Sped back up fsck, copy --from, and other commands that often + have to read a lot of information from the git-annex branch. Such + commands are now faster than they were before introduction of the + git-annex branch. + * Always ensure git-annex branch exists. + * Modify location log parser to allow future expansion. + * --force will cause add, etc, to operate on ignored files. + * Avoid mangling encoding when storing the description of repository + and other content. + * cabal can now be used to build git-annex. This is substantially + slower than using make, does not build or install documentation, + does not run the test suite, and is not particularly recommended, + but could be useful to some. + + -- Joey Hess Sat, 02 Jul 2011 15:00:18 -0400 + +git-annex (3.20110624) experimental; urgency=low + + * New repository format, annex.version=3. Use `git annex upgrade` to migrate. + * git-annex now stores its logs in a git-annex branch. + * merge: New subcommand. Auto-merges the new git-annex branch. + * Improved handling of bare git repos with annexes. Many more commands will + work in them. + * git-annex is now more robust; it will never leave state files + uncommitted when some other git process comes along and locks the index + at an inconvenient time. + * rsync is now used when copying files from repos on other filesystems. + cp is still used when copying file from repos on the same filesystem, + since --reflink=auto can make it significantly faster on filesystems + such as btrfs. + * Allow --trust etc to specify a repository by name, for temporarily + trusting repositories that are not configured remotes. + * unlock: Made atomic. + * git-union-merge: New git subcommand, that does a generic union merge + operation, and operates efficiently without touching the working tree. + + -- Joey Hess Fri, 24 Jun 2011 14:32:18 -0400 + +git-annex (0.20110610) unstable; urgency=low + + * Add --numcopies option. + * Add --trust, --untrust, and --semitrust options. + * get --from is the same as copy --from + * Bugfix: Fix fsck to not think all SHAnE keys are bad. + + -- Joey Hess Fri, 10 Jun 2011 11:48:40 -0400 + +git-annex (0.20110601) unstable; urgency=low + + * Minor bugfixes and error message improvements. + * Massively sped up `git annex lock` by avoiding use of the uber-slow + `git reset`, and only running `git checkout` once, even when many files + are being locked. + * Fix locking of files with staged changes. + * Somewhat sped up `git commit` of modifications to unlocked files. + * Build fix for older ghc. + + -- Joey Hess Wed, 01 Jun 2011 11:50:47 -0400 + +git-annex (0.20110522) unstable; urgency=low + + * Closer emulation of git's behavior when told to use "foo/.git" as a + git repository instead of just "foo". Closes: #627563 + * Fix bug in --exclude introduced in 0.20110516. + + -- Joey Hess Fri, 27 May 2011 20:20:41 -0400 + +git-annex (0.20110521) unstable; urgency=low + + * status: New subcommand to show info about an annex, including its size. + * --backend now overrides any backend configured in .gitattributes files. + * Add --debug option. Closes: #627499 + + -- Joey Hess Sat, 21 May 2011 11:52:53 -0400 + +git-annex (0.20110516) unstable; urgency=low + + * Add a few tweaks to make it easy to use the Internet Archive's variant + of S3. In particular, munge key filenames to comply with the IA's filename + limits, disable encryption, support their nonstandard way of creating + buckets, and allow x-archive-* headers to be specified in initremote to + set item metadata. + * Added filename extension preserving variant backends SHA1E, SHA256E, etc. + * migrate: Use current filename when generating new key, for backends + where the filename affects the key name. + * Work around a bug in Network.URI's handling of bracketed ipv6 addresses. + + -- Joey Hess Mon, 16 May 2011 14:16:52 -0400 + +git-annex (0.20110503) unstable; urgency=low + + * Fix hasKeyCheap setting for bup and rsync special remotes. + * Add hook special remotes. + * Avoid crashing when an existing key is readded to the annex. + * unused: Now also lists files fsck places in .git/annex/bad/ + * S3: When encryption is enabled, the Amazon S3 login credentials + are stored, encrypted, in .git-annex/remotes.log, so environment + variables need not be set after the remote is initialized. + + -- Joey Hess Tue, 03 May 2011 20:56:01 -0400 + +git-annex (0.20110427) unstable; urgency=low + + * Switch back to haskell SHA library, so git-annex remains buildable on + Debian stable. + * Added rsync special remotes. This could be used, for example, to + store annexed content on rsync.net (encrypted naturally). Or anywhere else. + * Bugfix: Avoid pipeline stall when running git annex drop or fsck on a + lot of files. Possibly only occured with ghc 7. + + -- Joey Hess Wed, 27 Apr 2011 22:50:26 -0400 + +git-annex (0.20110425) unstable; urgency=low + + * Use haskell Crypto library instead of haskell SHA library. + * Remove testpack from build depends for non x86 architectures where it + is not available. The test suite will not be run if it cannot be compiled. + * Avoid using absolute paths when staging location log, as that can + confuse git when a remote's path contains a symlink. Closes: #621386 + + -- Joey Hess Mon, 25 Apr 2011 15:47:00 -0400 + +git-annex (0.20110420) unstable; urgency=low + + * Update Debian build dependencies for ghc 7. + * Debian package is now built with S3 support. + Thanks Joachim Breitner for making this possible. + * Somewhat improved memory usage of S3, still work to do. + Thanks Greg Heartsfield for ongoing work to improve the hS3 library + for git-annex. + + -- Joey Hess Thu, 21 Apr 2011 15:00:48 -0400 + +git-annex (0.20110419) unstable; urgency=low + + * Don't run gpg in batch mode, so it can prompt for passphrase when + there is no agent. + * Add missing build dep on dataenc. + * S3: Fix stalls when transferring encrypted data. + * bup: Avoid memory leak when transferring encrypted data. + + -- Joey Hess Tue, 19 Apr 2011 21:26:51 -0400 + +git-annex (0.20110417) unstable; urgency=low + + * bup is now supported as a special type of remote. + * The data sent to special remotes (Amazon S3, bup, etc) can be encrypted + using GPG for privacy. + * Use lowercase hash directories for locationlog files, to avoid + some issues with git on OSX with the mixed-case directories. + No migration is needed; the old mixed case hash directories are still + read; new information is written to the new directories. + * Unused files on remotes, particulary special remotes, can now be + identified and dropped, by using "--from remote" with git annex unused + and git annex dropunused. + * Clear up short option confusion between --from and --force (-f is now + --from, and there is no short option for --force). + * Add build depend on perlmagick so docs are consistently built. + Closes: #621410 + * Add doc-base file. Closes: #621408 + * Periodically flush git command queue, to avoid boating memory usage + too much. + * Support "sha1" and "sha512" commands on FreeBSD, and allow building + if any/all SHA commands are not available. Thanks, Fraser Tweedale + + -- Joey Hess Sun, 17 Apr 2011 12:00:24 -0400 + +git-annex (0.20110401) experimental; urgency=low + + * Amazon S3 is now supported as a special type of remote. + Warning: Encrypting data before sending it to S3 is not yet supported. + * Note that Amazon S3 support is not built in by default on Debian yet, + as hS3 is not packaged. + * fsck: Ensure that files and directories in .git/annex/objects + have proper permissions. + * Added a special type of remote called a directory remote, which + simply stores files in an arbitrary local directory. + * Bugfix: copy --to --fast never really copied, fixed. + + -- Joey Hess Fri, 01 Apr 2011 21:27:22 -0400 + +git-annex (0.20110328) experimental; urgency=low + + * annex.diskreserve can be given in arbitrary units (ie "0.5 gigabytes") + * Generalized remotes handling, laying groundwork for remotes that are + not regular git remotes. (Think Amazon S3.) + * Provide a less expensive version of `git annex copy --to`, enabled + via --fast. This assumes that location tracking information is correct, + rather than contacting the remote for every file. + * Bugfix: Keys could be received into v1 annexes from v2 annexes, via + v1 git-annex-shell. This results in some oddly named keys in the v1 + annex. Recognise and fix those keys when upgrading, instead of crashing. + + -- Joey Hess Mon, 28 Mar 2011 10:47:29 -0400 + +git-annex (0.20110325) experimental; urgency=low + + * Free space checking is now done, for transfers of data for keys + that have free space metadata. (Notably, not for SHA* keys generated + with git-annex 0.2x or earlier.) The code is believed to work on + Linux, FreeBSD, and OSX; check compile-time messages to see if it + is not enabled for your OS. + * Add annex.diskreserve config setting, to control how much free space + to reserve for other purposes and avoid using (defaults to 1 mb). + * Add --fast flag, that can enable less expensive, but also less thorough + versions of some commands. + * fsck: In fast mode, avoid checking checksums. + * unused: In fast mode, just show all existing temp files as unused, + and avoid expensive scan for other unused content. + * migrate: Support migrating v1 SHA keys to v2 SHA keys with + size information that can be used for free space checking. + * Fix space leak in fsck and drop commands. + * migrate: Bugfix for case when migrating a file results in a key that + is already present in .git/annex/objects. + * dropunused: Significantly sped up; only read unused log file once. + + -- Joey Hess Fri, 25 Mar 2011 00:47:37 -0400 + +git-annex (0.20110320) experimental; urgency=low + + * Fix dropping of files using the URL backend. + * Fix support for remotes with '.' in their names. + * Add version command to show git-annex version as well as repository + version information. + * No longer auto-upgrade to repository format 2, to avoid accidental + upgrades, etc. Use git-annex upgrade when you're ready to run this + version. + + -- Joey Hess Sun, 20 Mar 2011 16:36:33 -0400 + +git-annex (0.20110316) experimental; urgency=low + + * New repository format, annex.version=2. + * The first time git-annex is run in an old format repository, it + will automatically upgrade it to the new format, staging all + necessary changes to git. Also added a "git annex upgrade" command. + * Colons are now avoided in filenames, so bare clones of git repos + can be put on USB thumb drives formatted with vFAT or similar + filesystems. + * Added two levels of hashing to object directory and .git-annex logs, + to improve scalability with enormous numbers of annexed + objects. (With one hundred million annexed objects, each + directory would contain fewer than 1024 files.) + * The setkey, fromkey, and dropkey subcommands have changed how + the key is specified. --backend is no longer used with these. + + -- Joey Hess Wed, 16 Mar 2011 16:20:23 -0400 + +git-annex (0.24) unstable; urgency=low + + Branched the 0.24 series, which will be maintained for a while to + support v1 git-annex repos, while main development moves to the 0.2011 + series, with v2 git-annex repos. + + * Add Suggests on graphviz. Closes: #618039 + * When adding files to the annex, the symlinks pointing at the annexed + content are made to have the same mtime as the original file. + While git does not preserve that information, this allows a tool + like metastore to be used with annexed files. + (Currently this is only done on systems supporting POSIX 200809.) + + -- Joey Hess Wed, 16 Mar 2011 18:35:13 -0400 + +git-annex (0.23) unstable; urgency=low + + * Support ssh remotes with a port specified. + * whereis: New subcommand to show where a file's content has gotten to. + * Rethink filename encoding handling for display. Since filename encoding + may or may not match locale settings, any attempt to decode filenames + will fail for some files. So instead, do all output in binary mode. + + -- Joey Hess Sat, 12 Mar 2011 15:02:49 -0400 + +git-annex (0.22) unstable; urgency=low + + * Git annexes can now be attached to bare git repositories. + (Both the local and remote host must have this version of git-annex + installed for it to work.) + * Support filenames that start with a dash; when such a file is passed + to a utility it will be escaped to avoid it being interpreted as an + option. (I went a little overboard and got the type checker involved + in this, so such files are rather comprehensively supported now.) + * New backends: SHA512 SHA384 SHA256 SHA224 + (Supported on systems where corresponding shaNsum commands are available.) + * describe: New subcommand that can set or change the description of + a repository. + * Fix test suite to reap zombies. + (Zombies can be particularly annoying on OSX; thanks to Jimmy Tang + for his help eliminating the infestation... for now.) + * Make test suite not rely on a working cp -pr. + (The Unix wars are still ON!) + * Look for dir.git directories the same as git does. + * Support remote urls specified as relative paths. + * Support non-ssh remote paths that contain tilde expansions. + * fsck: Check for and repair location log damage. + * Bugfix: When fsck detected and moved away corrupt file content, it did + not update the location log. + + -- Joey Hess Fri, 04 Mar 2011 15:10:57 -0400 + +git-annex (0.21) unstable; urgency=low + + * test: Don't rely on chmod -R working. + * unannex: Fix recently introduced bug when attempting to unannex more + than one file at a time. + * test: Set git user name and email in case git can't guess values. + * Fix display of unicode filenames. + + -- Joey Hess Fri, 11 Feb 2011 23:21:08 -0400 + +git-annex (0.20) unstable; urgency=low + + * Preserve specified file ordering when instructed to act on multiple + files or directories. For example, "git annex get a b" will now always + get "a" before "b". Previously it could operate in either order. + * unannex: Commit staged changes at end, to avoid some confusing behavior + with the pre-commit hook, which would see some types of commits after + an unannex as checking in of an unlocked file. + * map: New subcommand that uses graphviz to display a nice map of + the git repository network. + * Deal with the mtl/monads-fd conflict. + * configure: Check for sha1sum. + + -- Joey Hess Tue, 08 Feb 2011 18:57:24 -0400 + +git-annex (0.19) unstable; urgency=low + + * configure: Support using the uuidgen command if the uuid command is + not available. + * Allow --exclude to be specified more than once. + * There are now three levels of repository trust. + * untrust: Now marks the current repository as untrusted. + * semitrust: Now restores the default trust level. (What untrust used to do.) + * fsck, drop: Take untrusted repositories into account. + * Bugfix: Files were copied from trusted remotes first even if their + annex.cost was higher than other remotes. + * Improved temp file handling. Transfers of content can now be resumed + from temp files later; the resume does not have to be the immediate + next git-annex run. + * unused: Include partially transferred content in the list. + * Bugfix: Running a second git-annex while a first has a transfer in + progress no longer deletes the first processes's temp file. + + -- Joey Hess Fri, 28 Jan 2011 14:31:37 -0400 + +git-annex (0.18) unstable; urgency=low + + * Bugfix: `copy --to` and `move --to` forgot to stage location log changes + after transferring the file to the remote repository. + (Did not affect ssh remotes.) + * fsck: Fix bug in moving of corrupted files to .git/annex/bad/ + * migrate: Fix support for --backend option. + * unlock: Fix behavior when file content is not present. + * Test suite improvements. Current top-level test coverage: 80% + + -- Joey Hess Fri, 14 Jan 2011 14:17:44 -0400 + +git-annex (0.17) unstable; urgency=low + + * unannex: Now skips files whose content is not present, rather than + it being an error. + * New migrate subcommand can be used to switch files to using a different + backend, safely and with no duplication of content. + * bugfix: Fix crash caused by empty key name. (Thanks Henrik for reporting.) + + -- Joey Hess Sun, 09 Jan 2011 10:04:11 -0400 + +git-annex (0.16) unstable; urgency=low + + * git-annex-shell: Avoid exposing any git repo config except for the + annex.uuid when doing configlist. + * bugfix: Running `move --to` with a remote whose UUID was not yet known + could result in git-annex not recording on the local side where the + file was moved to. This could not result in data loss, or even a + significant problem, since the remote *did* record that it had the file. + * Also, add a general guard to detect attempts to record information + about repositories with missing UUIDs. + * bugfix: Running `move --to` with a non-ssh remote failed. + * bugfix: Running `copy --to` with a non-ssh remote actually did a move. + * Many test suite improvements. Current top-level test coverage: 65% + + -- Joey Hess Fri, 07 Jan 2011 14:33:13 -0400 + +git-annex (0.15) unstable; urgency=low + + * Support scp-style urls for remotes (host:path). + * Support ssh urls containing "~". + * Add trust and untrust subcommands, to allow configuring repositories + that are trusted to retain files without explicit checking. + * Fix bug in numcopies handling when multiple remotes pointed to the + same repository. + * Introduce the git-annex-shell command. It's now possible to make + a user have it as a restricted login shell, similar to git-shell. + * Note that git-annex will always use git-annex-shell when accessing + a ssh remote, so all of your remotes need to be upgraded to this + version of git-annex at the same time. + * Now rsync is exclusively used for copying files to and from remotes. + scp is not longer supported. + + -- Joey Hess Fri, 31 Dec 2010 22:00:52 -0400 + +git-annex (0.14) unstable; urgency=low + + * Bugfix to git annex unused in a repository with nothing yet annexed. + * Support upgrading from a v0 annex with nothing in it. + * Avoid multiple calls to git ls-files when passed eg, "*". + + -- Joey Hess Fri, 24 Dec 2010 17:38:48 -0400 + +git-annex (0.13) unstable; urgency=low + + * Makefile: Install man page and html (when built). + * Makefile: Add GHCFLAGS variable. + * Fix upgrade from 0.03. + * Support remotes using git+ssh and ssh+git as protocol. + Closes: #607056 + + -- Joey Hess Tue, 14 Dec 2010 13:05:10 -0400 + +git-annex (0.12) unstable; urgency=low + + * Add --exclude option to exclude files from processing. + * mwdn2man: Fix a bug in newline supression. Closes: #606578 + * Bugfix to git annex add of an unlocked file in a subdir. Closes: #606579 + * Makefile: Add PREFIX variable. + + -- Joey Hess Sat, 11 Dec 2010 17:32:00 -0400 + +git-annex (0.11) unstable; urgency=low + + * If available, rsync will be used for file transfers from remote + repositories. This allows resuming interrupted transfers. + * Added remote.annex-rsync-options. + * Avoid deleting temp files when rsync fails. + * Improve detection of version 0 repos. + * Add uninit subcommand. Closes: #605749 + + -- Joey Hess Sat, 04 Dec 2010 17:27:42 -0400 + +git-annex (0.10) unstable; urgency=low + + * In .gitattributes, the annex.numcopies attribute can be used + to control the number of copies to retain of different types of files. + * Bugfix: Always correctly handle gitattributes when in a subdirectory of + the repository. (Had worked ok for ones like "*.mp3", but failed for + ones like "dir/*".) + * fsck: Fix warning about not enough copies of a file, when locations + are known, but are not available in currently configured remotes. + * precommit: Optimise to avoid calling git-check-attr more than once. + * The git-annex-backend attribute has been renamed to annex.backend. + + -- Joey Hess Sun, 28 Nov 2010 19:28:05 -0400 + +git-annex (0.09) unstable; urgency=low + + * Add copy subcommand. + * Fix bug in setkey subcommand triggered by move --to. + + -- Joey Hess Sat, 27 Nov 2010 17:14:59 -0400 + +git-annex (0.08) unstable; urgency=low + + * Fix `git annex add ../foo` (when ran in a subdir of the repo). + * Add configure step to build process. + * Only use cp -a if it is supported, falling back to cp -p or plain cp + as needed for portability. + * cp --reflink=auto is used if supported, and will make git annex unlock + much faster on filesystems like btrfs that support copy on write. + + -- Joey Hess Sun, 21 Nov 2010 13:45:44 -0400 + +git-annex (0.07) unstable; urgency=low + + * find: New subcommand. + * unused: New subcommand, finds unused data. (Split out from fsck.) + * dropunused: New subcommand, provides for easy dropping of unused keys + by number, as listed by the unused subcommand. + * fsck: Print warnings to stderr; --quiet can now be used to only see + problems. + + -- Joey Hess Mon, 15 Nov 2010 18:41:50 -0400 + +git-annex (0.06) unstable; urgency=low + + * fsck: Check if annex.numcopies is satisfied. + * fsck: Verify the sha1 of files when the SHA1 backend is used. + * fsck: Verify the size of files when the WORM backend is used. + * fsck: Allow specifying individual files if fscking everything + is not desired. + * fsck: Fix bug, introduced in 0.04, in detection of unused data. + + -- Joey Hess Sat, 13 Nov 2010 16:24:29 -0400 + +git-annex (0.05) unstable; urgency=low + + * Optimize both pre-commit and lock subcommands to not call git diff + on every file being committed/locked. + (This actually also works around a bug in ghc, that caused + git-annex 0.04 pre-commit to sometimes corrupt filename being read + from git ls-files and fail. + See + The excessive number of calls made by pre-commit exposed the ghc bug. + Thanks Josh Triplett for the debugging.) + * Build with -O2. + + -- Joey Hess Thu, 11 Nov 2010 18:31:09 -0400 + +git-annex (0.04) unstable; urgency=low + + * Add unlock subcommand, which replaces the symlink with a copy of + the file's content in preparation of changing it. The "edit" subcommand + is an alias for unlock. + * Add lock subcommand. + * Unlocked files will now automatically be added back into the annex when + committed (and the updated symlink committed), by some magic in the + pre-commit hook. + * The SHA1 backend is now fully usable. + * Add annex.version, which will be used to automate upgrades + between incompatible versions. + * Reorganised the layout of .git/annex/ + * The new layout will be automatically upgraded to the first time + git-annex is used in a repository with the old layout. + * Note that git-annex 0.04 cannot transfer content from old repositories + that have not yet been upgraded. + * Annexed file contents are now made unwritable and put in unwriteable + directories, to avoid them accidentially being removed or modified. + (Thanks Josh Triplett for the idea.) + * Add build dep on libghc6-testpack-dev. Closes: #603016 + * Avoid using runghc to run test suite as it is not available on all + architectures. Closes: #603006 + + -- Joey Hess Wed, 10 Nov 2010 14:23:23 -0400 + +git-annex (0.03) unstable; urgency=low + + * Fix support for file:// remotes. + * Add --verbose + * Fix SIGINT handling. + * Fix handling of files with unusual characters in their name. + * Fixed memory leak; git-annex no longer reads the whole file list + from git before starting, and will be much faster with large repos. + * Fix crash on unknown symlinks. + * Added remote.annex-scp-options and remote.annex-ssh-options. + * The backends to use when adding different sets of files can be configured + via gitattributes. + * In .gitattributes, the git-annex-backend attribute can be set to the + names of backends to use when adding different types of files. + * Add fsck subcommand. (For now it only finds unused key contents in the + annex.) + + -- Joey Hess Sun, 07 Nov 2010 18:26:04 -0400 + +git-annex (0.02) unstable; urgency=low + + * Can scp annexed files from remote hosts, and check remote hosts for + file content when dropping files. + * New move subcommand, that makes it easy to move file contents from + or to a remote. + * New fromkey subcommand, for registering urls, etc. + * git-annex init will now set up a pre-commit hook that fixes up symlinks + before they are committed, to ensure that moving symlinks around does not + break them. + * More intelligent and fast staging of modified files; git add coalescing. + * Add remote.annex-ignore git config setting to allow completly disabling + a given remote. + * --from/--to can be used to control the remote repository that git-annex + uses. + * --quiet can be used to avoid verbose output + * New plumbing-level dropkey and addkey subcommands. + * Lots of bug fixes. + + -- Joey Hess Wed, 27 Oct 2010 16:39:29 -0400 + +git-annex (0.01) unstable; urgency=low + + * First prerelease. + + -- Joey Hess Wed, 20 Oct 2010 12:54:24 -0400 diff --git a/control b/control new file mode 100644 index 0000000000..ee057f273f --- /dev/null +++ b/control @@ -0,0 +1,158 @@ +Source: git-annex +Section: utils +Priority: optional +Build-Depends: + debhelper-compat (= 13), + ghc (>= 8.4.3), + cabal-install, + libghc-mtl-dev (>= 2.1.1), + libghc-split-dev, + libghc-data-default-dev, + libghc-hslogger-dev, + libghc-crypton-dev, + libghc-memory-dev, + libghc-deepseq-dev, + libghc-attoparsec-dev, + libghc-sandi-dev, + libghc-utf8-string-dev, + libghc-aws-dev (>= 0.20), + libghc-conduit-dev, + libghc-resourcet-dev, + libghc-quickcheck2-dev (>= 2.10.0), + libghc-monad-control-dev (>= 0.3), + libghc-transformers-dev, + libghc-exceptions-dev (>= 0.6), + libghc-unix-compat-dev, + libghc-dlist-dev, + libghc-uuid-dev, + libghc-aeson-dev, + libghc-tagsoup-dev, + libghc-unordered-containers-dev, + libghc-ifelse-dev, + libghc-bloomfilter-dev (>= 2.0.0), + libghc-edit-distance-dev, + libghc-hinotify-dev (>= 0.3.10) [linux-any], + libghc-dbus-dev (>= 0.10.7) [linux-any], + libghc-fdo-notify-dev (>= 0.3) [linux-any], + libghc-yesod-dev (>= 1.2.6.1) [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 loong64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], + libghc-yesod-core-dev (>= 1.2.19) [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 loong64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], + libghc-yesod-form-dev (>= 1.3.15) [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 loong64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], + libghc-yesod-static-dev (>= 1.2.4) [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 loong64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], + libghc-shakespeare-dev (>= 2.0.0) [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 loong64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], + libghc-clientsession-dev [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 loong64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], + libghc-warp-dev (>= 3.0.0.5) [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 loong64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], + libghc-warp-tls-dev [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 loong64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], + libghc-wai-dev [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 loong64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], + libghc-wai-extra-dev [i386 amd64 arm64 armel armhf kfreebsd-i386 kfreebsd-amd64 loong64 m68k mips mips64el mipsel powerpc ppc64el s390x riscv64], + libghc-dav-dev (>= 1.0), + libghc-persistent-dev (>= 2.8.1), + libghc-persistent-template-dev, + libghc-persistent-sqlite-dev (>= 2.8.1), + libghc-microlens-dev, + libghc-securemem-dev, + libghc-byteable-dev, + libghc-stm-chans-dev, + libghc-case-insensitive-dev, + libghc-http-types-dev, + libghc-http-conduit-dev, + libghc-http-client-restricted-dev, + libghc-blaze-builder-dev, + libghc-crypto-api-dev, + libghc-network-multicast-dev, + libghc-network-info-dev [linux-any kfreebsd-any], + libghc-safesemaphore-dev, + libghc-async-dev, + libghc-monad-logger-dev, + libghc-free-dev, + libghc-feed-dev (>= 1.0.0), + libghc-regex-tdfa-dev, + libghc-tasty-dev (>= 0.7), + libghc-tasty-hunit-dev, + libghc-tasty-quickcheck-dev, + libghc-tasty-rerun-dev, + libghc-cabal-dev, + libghc-ansi-terminal-dev, + libghc-optparse-applicative-dev (>= 0.11.0), + libghc-torrent-dev, + libghc-concurrent-output-dev (>= 1.10), + libghc-disk-free-space-dev, + libghc-mountpoints-dev, + libghc-magic-dev, + libghc-socks-dev, + libghc-vector-dev, + libghc-unbounded-delays-dev, + libghc-unliftio-core-dev, + libghc-filepath-bytestring-dev, + libghc-git-lfs-dev (>= 1.2.0), + libghc-criterion-dev, + libghc-clock-dev, + libghc-servant-dev, + libghc-servant-server-dev, + libghc-servant-client-dev, + libghc-servant-client-core-dev, + lsof [linux-any], + ikiwiki, + libimage-magick-perl, + git (>= 1:2.22), + rsync, + curl, + openssh-client, + git-remote-gcrypt (>= 0.20130908-6), + gnupg, + gpg-agent, +Maintainer: Debian Haskell Group +Uploaders: + Richard Hartmann , + Sean Whitton , +Standards-Version: 4.2.1 +Vcs-Git: https://salsa.debian.org/haskell-team/git-annex.git +Vcs-Browser: https://salsa.debian.org/haskell-team/git-annex +Homepage: http://git-annex.branchable.com/ +XS-Testsuite: autopkgtest + +Package: git-annex +Architecture: any +Section: utils +Depends: ${misc:Depends}, ${shlibs:Depends}, + git (>= 1:2.22), + netbase, + rsync, + curl, + openssh-client (>= 1:5.6p1) +Recommends: + lsof, + gnupg, + bind9-host, + git-remote-gcrypt (>= 0.20130908-6), + nocache, + aria2, +Suggests: + xdot, + bup, + adb, + tor, + magic-wormhole, + tahoe-lafs, + libnss-mdns, + uftp, + yt-dlp, +Breaks: datalad (<< 0.12.3~) +Description: manage files with git, without checking their contents into git + git-annex allows managing large files with git, without storing the file + contents in git. It can sync, backup, and archive your data, offline + and online. Checksums and encryption keep your data safe and secure. Bring + the power and distributed nature of git to bear on your large files with + git-annex. + . + It can store large files in many places, from local hard drives, to a + large number of cloud storage services, including S3, WebDAV, + and rsync, with dozens of cloud storage providers usable via plugins. + Files can be stored encrypted with gpg, so that the cloud storage + provider cannot see your data. git-annex keeps track of where each file + is stored, so it knows how many copies are available, and has many + facilities to ensure your data is preserved. + . + git-annex can also be used to keep a folder in sync between computers, + noticing when files are changed, and automatically committing them + to git and transferring them to other computers. The git-annex webapp + makes it easy to set up and use git-annex this way. diff --git a/copyright b/copyright new file mode 120000 index 0000000000..dc5f40a221 --- /dev/null +++ b/copyright @@ -0,0 +1 @@ +../COPYRIGHT \ No newline at end of file diff --git a/create-standalone-changelog b/create-standalone-changelog new file mode 100755 index 0000000000..c5e607e9e7 --- /dev/null +++ b/create-standalone-changelog @@ -0,0 +1,17 @@ +#!/bin/bash +# +# A little helper script to build a package with standalone git-annex +# It relies on being run within git-annex's git repository +# +set -eu + +umask 022 + +# For NeuroDebian we rely on `git describe` output to get a +# sortable version which should work for any stage of a snapshot between +# releases and would remain sortable +ANNEX_VERSION=$(git describe HEAD) +ANNEX_NDVERSION=$( echo ${ANNEX_VERSION} | sed -e 's,-,+git,' -e 's,$,-1~ndall+1,') + +dch --noconf -v ${ANNEX_NDVERSION} \ + --force-bad-version --force-distribution -D neurodebian "Backported fresh snapshot" diff --git a/doc-base b/doc-base new file mode 100644 index 0000000000..f71a233333 --- /dev/null +++ b/doc-base @@ -0,0 +1,9 @@ +Document: git-annex +Title: git-annex documentation +Author: Joey Hess +Abstract: All the documentation from git-annex's website. +Section: File Management + +Format: HTML +Index: /usr/share/doc/git-annex/html/index.html +Files: /usr/share/doc/git-annex/html/*.html diff --git a/gbp.conf b/gbp.conf new file mode 100644 index 0000000000..024fcfeb4e --- /dev/null +++ b/gbp.conf @@ -0,0 +1,7 @@ +[DEFAULT] +debian-branch = master +upstream-tag = %(version)s +debian-tag = debian/%(version)s + +compression = xz +compression-level = 9 diff --git a/git-annex.lintian-overrides b/git-annex.lintian-overrides new file mode 100644 index 0000000000..dca0fa114a --- /dev/null +++ b/git-annex.lintian-overrides @@ -0,0 +1,2 @@ +# upstream manages NEWS.Debian, and this version was not packaged +debian-news-entry-has-unknown-version 7.20181031 diff --git a/patches/debian-changes b/patches/debian-changes new file mode 100644 index 0000000000..c6d3d9be31 --- /dev/null +++ b/patches/debian-changes @@ -0,0 +1,56 @@ +The Debian packaging of git-annex is maintained in git, using the +merging workflow described in dgit-maint-merge(7). There isn't a +patch queue that can be represented as a quilt series. + +A detailed breakdown of the changes is available from their canonical +representation - git commits in the packaging repository. For +example, to see the changes made by the Debian maintainer in the first +upload of upstream version 1.2.3, you could use: + + % git clone https://git.dgit.debian.org/git-annex + % cd git-annex + % git log --oneline 1.2.3..debian/1.2.3-1 -- . ':!debian' + +(If you have dgit, use `dgit clone git-annex`, rather than plain `git +clone`.) + +A single combined diff, containing all the changes, follows. +--- git-annex-10.20241202.orig/COPYRIGHT ++++ git-annex-10.20241202/COPYRIGHT +@@ -59,11 +59,14 @@ License: GPL-2 + The full text of version 2 of the GPL is distributed in + /usr/share/common-licenses/GPL-2 on Debian systems. + ++Files: Annex/DirHashes.hs ++Copyright: © 2010-2017 Joey Hess ++License: GPL-3+ ++ + Files: Database/RawFilePath.hs + Copyright: © 2012 Michael Snoyman, http://www.yesodweb.com/ + © 2023 Joey Hess + License: Expat +- The text of the Expat license is in the Expat section below. + + Files: doc/tips/automatically_adding_metadata/pre-commit-annex + Copyright: 2014 Joey Hess +@@ -74,9 +77,6 @@ Files: static/jquery* + Copyright: © 2005-2011 by John Resig, Branden Aaron & Jörn Zaefferer + © 2011 The Dojo Foundation + License: Expat or GPL-2 +- The full text of version 2 of the GPL is distributed in +- /usr/share/common-licenses/GPL-2 on Debian systems. The text of the Expat +- license is in the Expat section below. + + Files: static/*/bootstrap* static/*/glyphicons-halflings* + Copyright: 2012-2014 Twitter, Inc. +@@ -106,6 +106,10 @@ License: GPL-3+ + this package's source, or in /usr/share/common-licenses/GPL-3 on + Debian systems. + ++License: GPL-2 ++ The full text of version 2 of the GPL is distributed in ++ /usr/share/common-licenses/GPL-2 on Debian systems. ++ + License: BSD-2-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions diff --git a/patches/series b/patches/series new file mode 100644 index 0000000000..7bb825291d --- /dev/null +++ b/patches/series @@ -0,0 +1 @@ +debian-changes diff --git a/rules b/rules new file mode 100755 index 0000000000..c19da8bb98 --- /dev/null +++ b/rules @@ -0,0 +1,66 @@ +#!/usr/bin/make -f + +export BUILDER=./Setup + +# -j1 is used for reproducible build +export BUILDEROPTIONS=-j1 + +# Reduce optimisation on armhf and armel to avoid running out of +# memory. Passing -O1 to ghc causes it to pass -O2 to llc. We can't +# simply use ghc's -optlc to pass -O2 to llc, because when we don't +# pass -O1 to ghc, it will pass an -O3 to llc, overriding our -optlc +# attempt. See definition of runPhase in +# compiler/main/DriverPipeline.hs in ghc source +DEB_HOST_ARCH?=$(shell dpkg-architecture -qDEB_HOST_ARCH) +ifneq (,$(filter armel,$(DEB_HOST_ARCH))) +export BUILDEROPTIONS:=$(BUILDEROPTIONS) --ghc-option=-O1 +endif +ifneq (,$(filter armhf,$(DEB_HOST_ARCH))) +export BUILDEROPTIONS:=$(BUILDEROPTIONS) --ghc-option=-O1 +endif + +STANDALONE_BUILD=$(shell grep -qe '^Package: git-annex-standalone' debian/control \ + && echo 1 || echo 0) + +# Do use the changelog's version number, rather than making one up. +export RELEASE_BUILD=1 + +export ZSH_COMPLETIONS_PATH=/usr/share/zsh/vendor-completions + +ifeq (yes, $(shell dpkg-vendor --derives-from Ubuntu && echo yes)) +# See LP: #2019992 +export DEB_LDFLAGS_MAINT_STRIP = -Wl,-Bsymbolic-functions +ifneq (,$(filter $(DEB_HOST_ARCH), ppc64el)) +export DEB_BUILD_MAINT_OPTIONS = optimize=-lto +endif +endif + +%: + dh $@ + + +# Standalone build logic/helpers +ifeq ($(STANDALONE_BUILD),1) + +override_dh_auto_build: + make linuxstandalone GIT_ANNEX_PACKAGE_INSTALL=1 + +override_dh_auto_install: + make install-desktop install-docs install-completions \ + DESTDIR=debian/git-annex-standalone + # bins are linked into place, as instructed in debian/install and debian/links + +override_dh_fixperms: + dh_fixperms -Xld-linux + +# gdb can't do much with a haskell program, so avoid the debug package +override_dh_strip: + dh_strip --no-automatic-dbgsym + +# Do not add "ldconfig" trigger since all libraries in the standalone build +# are private copies and the trigger activate-noawait trigger may not work +# on elderly distributions (e.g. squeeze) +override_dh_makeshlibs: + dh_makeshlibs --noscripts + +endif diff --git a/source/format b/source/format new file mode 100644 index 0000000000..163aaf8d82 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/source/lintian-overrides b/source/lintian-overrides new file mode 100644 index 0000000000..f8107514e0 --- /dev/null +++ b/source/lintian-overrides @@ -0,0 +1,2 @@ +# making it into a regular file would introduce an unhelpful delta from upstream +debian-copyright-is-symlink diff --git a/source/options b/source/options new file mode 100644 index 0000000000..ce071fb483 --- /dev/null +++ b/source/options @@ -0,0 +1,2 @@ +single-debian-patch +auto-commit diff --git a/source/patch-header b/source/patch-header new file mode 100644 index 0000000000..a5e3f02edc --- /dev/null +++ b/source/patch-header @@ -0,0 +1,17 @@ +The Debian packaging of git-annex is maintained in git, using the +merging workflow described in dgit-maint-merge(7). There isn't a +patch queue that can be represented as a quilt series. + +A detailed breakdown of the changes is available from their canonical +representation - git commits in the packaging repository. For +example, to see the changes made by the Debian maintainer in the first +upload of upstream version 1.2.3, you could use: + + % git clone https://git.dgit.debian.org/git-annex + % cd git-annex + % git log --oneline 1.2.3..debian/1.2.3-1 -- . ':!debian' + +(If you have dgit, use `dgit clone git-annex`, rather than plain `git +clone`.) + +A single combined diff, containing all the changes, follows. diff --git a/tests/basics b/tests/basics new file mode 100644 index 0000000000..2e4ea43fc1 --- /dev/null +++ b/tests/basics @@ -0,0 +1,4 @@ +#!/bin/sh +testdir="$(mktemp -d)" +cd "$testdir" +exec git-annex test diff --git a/tests/control b/tests/control new file mode 100644 index 0000000000..66c7790ad7 --- /dev/null +++ b/tests/control @@ -0,0 +1,4 @@ +Tests: basics +Depends: @, git, rsync, gnupg +Restrictions: allow-stderr, flaky +